本帖最后由 刘凯 于 2013-3-23 17:34 编辑
我认为
1, 你并不能知道一个类中的变量名 如果这个变量名是私有的话 你根本就不能够得到这个变量名叫什么 那么 你怎么getDeclaredField() 里边参数是什么 ??
而javaBean里边的特有方法 setX getX 是共有的 所以你从这个暴露出来的方法来推断变量名是x 但真正的变量名是不是x呢??
例如
class Test{
private int y =1 ;
public int getX(){
return y;
}
public int setX(){
return y;
}
}
你只能从方法名里推断里边有个x的属性 ,然而并不是。实际上的属性名为y
所以用你说的那个方法 不能够实现了
而如果用
Test pt1 = new Test();
PropertyDescriptor pd2 = new PropertyDescriptor("x", pt1.getClass());
Method metthodSetX = pd2.getWriteMethod();
metthodSetX.invoke(pt1,2);
则还是可以对属性y进行操作的 因为这个传入的“x”是用来找getX方法对应的那个属性,而并非属性就叫做x
2,除此之外 BeanUtil工具类的运用更是简化了代码的书写,使得操作javaBean更为方便
|