我正在尝试创建一个commonMethod,它符合通用列表allData类型并打印出接收到的alldata对象的值。此外,我将className作为参数发送,以便我们可以通过反射检索Class和Fields。获取Java中的通用列表<?>对象的值
除了我想在forloop中声明className的部分外,我几乎在那里。我知道其余的代码工作,因为我试图硬编码一个ClassName,它的工作原理。
public void commonMethod(List<?> alldata, String className) {
Class c = Class.forName(className);
Field[] fields = c.getDeclaredFields();
//I would like to define incoming className here..but failing
for (className c : alldata) {
for (Field field : fields) {
field.setAccessible(true);
Object value = null;
value = field.get(c);
System.out.println(value);
//use the value in some other code
}
}
}
如何改变这一部分 为(的className C:ALLDATA)得到它的工作..
感谢
'for(Object c:allData)''。 –
您可以输入方法:'public void commonMethod(List alldata,Class c){ /* removed:Class c = Class.forName(className); * /'然后使用T –