很困扰,求解答

渐远 2012-05-22 10:42:35
第一天上班,组长布置任务如下:
给一个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;
}
...全文
73 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
渐远 2012-05-23
  • 打赏
  • 举报
回复
谢谢~
菖蒲老先生 2012-05-22
  • 打赏
  • 举报
回复
还是先看看Class.forName(String className)的用途吧,

----返回与带有给定字符串名的类或接口相关联的 Class 对象。

看完你就明白为什么会错了。。。
五哥 2012-05-22
  • 打赏
  • 举报
回复
objs[i]=Class.forName(sql)一行报ClassNotFound异常。

就是没有sql这个字符串的类嘛,你把 sql打出来看看,是否存在这个类 ,Field 只是一个名字,怎么会做成一个类完整路径 ?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧