java反射执行泛型方法出错,怎么解决

2025-01-18 14:00:57
推荐回答(1个)
回答1:

java确实不支持对不确定类型做class操作,不过你这里的目的其实是想取List里面实际传过来的Model类型吧?那也可以不用这种形式啊,像下面这样不就行了。。
private void testfunc(List list) {
for (AbstractModel m : list)
{
Field[] fields = m.getClass().getFields();
...
}
}
而且感觉其实应该这样对List的每一个元素分别处理,因为如果是你原来那样做的话,别人调用方如果有一个AbstractModel的子类Model,并且用如下方法调用:
List list = new List();
list.add(new Model());
DreamTableModel dtm = new DreamTableModel(list);
就算编译可以过,按照你原来的想法你也只会取到AbstractModel的Fields,而不是List里面的实际元素Model的Fields。