我必须创建一个具有如下内容的方法:
public void anyMethod(List<?> dataList){
for (Iterator<?> it = dataList.iterator(); it.hasNext();) {
Object p = it.next();
if(p instanceOf XYZ){
//do something
}
if(p instanceOf MNO){
//do something
}
}
}
现在不是逐个获取每个条目,然后每次检查它是否是任何类的实例,是否有任何方法可以在委托循环之前找到列表元素的数据类型,而无需使用反射从列表中获取任何元素。我的列表包含相同日期类型的元素。例如,它可以是List或List等,但是bot是combine数据类型。 谢谢
答案 0 :(得分:0)
在Java中,有无法来获取泛型声明的使用类型,在您的情况下,您可以通过获取列表的第一个元素来实现您所需的内容:
if(dataList.size()>0) {
Object p = dataList.get(0);
if(p instanceOf XYZ){
//do something
}
if(p instanceOf MNO){
//do something
}
}