第一天上班,组长布置任务如下:
给一个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;
}

解决方案 »

  1.   

    objs[i]=Class.forName(sql)一行报ClassNotFound异常。就是没有sql这个字符串的类嘛,你把 sql打出来看看,是否存在这个类 ,Field 只是一个名字,怎么会做成一个类完整路径 ?
      

  2.   

    还是先看看Class.forName(String className)的用途吧,----返回与带有给定字符串名的类或接口相关联的 Class 对象。看完你就明白为什么会错了