很困扰,求解答
第一天上班,组长布置任务如下:
给一个Object,获取了里面的所有属性字段(getDeclaredFields()),一个Field数组。要根据每个Field来创建相应的类。
以下是我尝试性的代码,结果在objs[i]=Class.forName(sql)一行报ClassNotFound异常。
public Object[] get(Object object){
Class c=object.getClass();
Field[] fields=c.getDeclaredFields();
Object[] objs=new Object[fields.length];
for(int i=0;i<fields.length;i++){
String sql=fields[i].toString();
try {
objs[i]=Class.forName(sql);
} catch (
ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println(objs[i].toString());
}
return objs;
}
------解决方案--------------------
objs[i]=Class.forName(sql)一行报ClassNotFound异常。
就是没有sql这个字符串的类嘛,你把 sql打出来看看,是否存在这个类 ,Field 只是一个名字,怎么会做成一个类完整路径 ?