我想要一种方法来返回不同类型的List
我尝试了类似下面的内容,但不确定这种方法是否正确。有人可以帮我解决这个问题吗?
public <T> List<T> getPageDetails(Long adId,String source);
并基于source
我将在实现方法中返回不同的List of objects
。
like in implementation if the source is 1, then will have to return List of objects type1 if the source is 2 then list of objects type2 etc
答案 0 :(得分:1)
private Object objT;
public <T> List<T> magicalListGetter(Class<T> cls) {
List<T> list = new ArrayList<>();
list.add(cls.cast(actuallyT));
try {
list.add(cls.getConstructor().newInstance()); // If default constructor
} ...
return list;
}
也可以为方法提供泛型类型参数。你已经正确地推断出需要正确的类实例来创建东西(cls.getConstructor()。newInstance())。
没有上课:
public <T> List<T> magicalListGetter() {
return new ArrayList<T>();
}
答案 1 :(得分:1)
您可以使用genrics返回多个列表
public <T> List<T> getPageDetails(Long adId,String source);
public static void main(String[] args) {
Solution sol = new Solution();
List<String> list = sol.getPageDetails(String.class, 0l, "source");
}
public <T> List<T> getPageDetails(Class<T> c, Long adId, String source) {
List<T> list = new ArrayList<>();
List<Object> objectList = getObjectList(adId, source);
for (Object o : objectList) {
T t = c.cast(o);
list.add(t);
}
return list;
}
private List<Object> getObjectList(Long adId, String source) {
// TODO Auto-generated method stub
return null;
}