java反射执行泛型方法出错,怎么解决
发布网友
发布时间:2023-09-13 15:41
我来回答
共1个回答
热心网友
时间:2024-11-30 17:31
java确实不支持对不确定类型做class操作,不过你这里的目的其实是想取List里面实际传过来的Model类型吧?那也可以不用这种形式啊,像下面这样不就行了。。
private void testfunc(List<AbstractModel> list) {
for (AbstractModel m : list)
{
Field[] fields = m.getClass().getFields();
...
}
}
而且感觉其实应该这样对List的每一个元素分别处理,因为如果是你原来那样做的话,别人调用方如果有一个AbstractModel的子类Model,并且用如下方法调用:
List<AbstractModel> list = new List<AbstractModel>();
list.add(new Model());
DreamTableModel dtm = new DreamTableModel(list);
就算编译可以过,按照你原来的想法你也只会取到AbstractModel的Fields,而不是List里面的实际元素Model的Fields。