java反射机制的高手请进!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/14 11:12:07
while(rs.next()){
obj = clazz.newInstance();
Method[] me = clazz.getMethods();
for(int p = 0;p<i;p++){
String colname = cloNmae[p];
String cloName = "set"+colname;
for(Method m:me){//这个for循环是什么意思,有什么特殊的??

if(cloName.equals(m.getName())){
m.invoke(obj,rs.getObject(colname));//这一步十分的费解。

}
}

}
list.add(obj);
}
请高手指教,小弟没财富值了,不能给分,不要因为这个不回答哦!!
先谢谢了!!!
cloName.equals(m.getName()) 这里面的m.getName()是什么意思??

for(Method m:me)在Thinking in java中称为Java中foreach循环
Method为类型信息 m为对象引用 me是一组对象集...

m.invoke()通过这个方法--反射私有方法

m.getName()就是你类的所有方法中的一个方法名

不懂Hi我!虽然我经常不在线...哈哈!!!

前一个for循环用于在集合中只读遍历。任何一个数组都可以的,
比如整型数组a[],就可以这样遍历:for(int v:a),其中的每个v代表a数组中的一个元素。
后一个是调用obj中的此方法。因为m就是遍历了方法数组,所以m就是obj类的任意一个方法。rs....是调用这个方法的参数

m对应的是me,而me是实力obj中所有的方法。
m.getName()就是所有方法对应的方法名。

for循环是遍历obj对象中的所有方法,如果方法的名字等于"set"+colname这个个字符串就会被调用,这个方法的输入参数是rs.getObject(colname).
m.getName()的意思是获得方法m的名字,是个String