____ResultSet__续__放分___附JDO的一个例子,__但是Reflection上有疑问

stillfire 2004-07-30 12:36:12
感谢各位在上个帖子的帮助和指点,
本人放分先谢大家,

不要怪我浮躁,现在真是箭在弦上,,
在网上找到了一个类似于 JDO的例子, 搞下来测试一下,但是有问题

例子
http://www.javaresearch.org/article/showarticle.jsp?column=108&thread=11522


Collection col = dao.findDatas("*","birthday is null",null,TeacherVO.class);
for (Iterator iter = col.iterator(); iter.hasNext(); ) {
Object item = iter.next();
System.out.println("item = " + item);
}
/**

这个测试没有问题,但是,一旦* 换成id ,只要是不能全部把所有field 放完的话,都要报错(在断点),我想知道为什么?

如果*正常,但是如果是id 等几个 数据 在断点报错
在下面的/******************断点***/处,这几句话,我不太懂,知道调用setId,将查询的数据方法Vo对象中去,,

public static Object toValueObject(Row row, Class type) throws Exception {
Object vo = type.newInstance(); //创建一个值对象
Field[] fields = type.getDeclaredFields(); //得到值对象中所有字段
for (int i = 0; i < fields.length; i++) {
String name = fields[i].getName(); //得到JavaBean的字段名
String nameInRow = toInRowName(name);//在此进行值对象名称到行对象名称的转换
Object value = row.get(nameInRow); //得到从数据库中取出的与字段名对应的值
String methodName = "set" + Character.toUpperCase(name.charAt(0)) +
name.substring(1); //得到setXXXX方法名
Class argClass = null;

/******************断点***/

if (value instanceof Class) {
argClass = (Class)value;
value = null;
}else{
argClass = value.getClass();
}
Method method = type.getMethod(methodName, new Class[] {argClass}); //得到set方法
method.invoke(vo, new Object[] {value});//调用setXXXX方法
}
/******************断点***/

return vo;
}
...全文
89 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
szabo 2005-02-22
  • 打赏
  • 举报
回复
我先去研究一下再说.
lovelymaomao 2004-07-30
  • 打赏
  • 举报
回复
up
stillfire 2004-07-30
  • 打赏
  • 举报
回复
帮忙顶一下
stillfire 2004-07-30
  • 打赏
  • 举报
回复
up 一下
stillfire 2004-07-30
  • 打赏
  • 举报
回复
http://www.javaresearch.org/article/showarticle.jsp?column=108&thread=11522

具体例子在这个里面的
shareanway 2004-07-30
  • 打赏
  • 举报
回复
看不懂,把代码都帖出来吧。

81,092

社区成员

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

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