java.beans包下有很多操作JavaBean的类。其中PropertyDescriptor是对属性进行读写操作的类。
一个类包含有get和(或)set开头的方法可以被认为是一个JavaBean。如下面的表示坐标的JavaBean:
现在要根据JavaBean实例来操作属性:
一个类包含有get和(或)set开头的方法可以被认为是一个JavaBean。如下面的表示坐标的JavaBean:
public class Coordinate {
private int x;
private int y;
public Coordinate(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
}
现在要根据JavaBean实例来操作属性:
Coordinate coordinate = new Coordinate(3, 8);
PropertyDescriptor pd = new PropertyDescriptor(propertyName, coordinate.getClass());
Method getter = pd.getReadMethod();
Object retVal = getter.invoke(coordinate);
System.out.println(retVal); // 3
Method setter = pd.getWriteMethod();
setter.invoke(coordinate, 4);
System.out.println(coordinate.getX()); // 4