我知道类似的问题已经在这里了,但我解决了一个问题而面对另一个问题,所以我想得到具体的答案。
我有方法List<Object> findObjects(String groupName)
,必须根据情况返回不同的对象类型。所有这些对象的类都是AbstractEntity
类的子级。
我用这种方式解决了问题:
public <T extends AbstractEntity> List<T> findObjects(String groupName, Class<List<T>> type) {
List<T> result = new ArrayList<>();
if ( ... )
result = type.cast(service1.findObjectsType1());
else if ( ... )
result = type.cast(service2.findObjectsType2());
return result;
}
现在我不能用另一种方法调用这个方法:
List<Object1> obs1 = findObjects("group name", ... ????);
作为第二个参数,我必须传递什么?
也许第一种解决方案不正确,我必须以另一种方式解决这个问题?