p { margin-bottom: 0.21cm; }
用内省的方式做JavaBean 的反射可以有省去很多步骤
下面是获得一个JavaBean 的set 属性和get 属性的方法
public class IntroSpectorTest {
public static void main(String[] args) throws Exception {
// 实例化一个 JavaBean 对象
ReflectPoint p1 = new ReflectPoint(3, 5);
String propertyName = "x" ;
// 属性描述器 装某个对象中的某个属性
PropertyDescriptor pd = getProerty (p1, propertyName);
// set 一个值 pd.getWriteMethod() 得到某个属性的 set 方法
Method methodSetX = pd.getWriteMethod();
// 给对像 set 一个值进去
methodSetX.invoke(p1, 7);
System. out .println(p1.getX());
}
private static PropertyDescriptor getProerty(Object p1,
String propertyName) throws IntrospectionException,
IllegalAccessException, InvocationTargetException {
PropertyDescriptor pd = new PropertyDescriptor(propertyName, p1
.getClass());
Method methodGetX = pd .getReadMethod();
Object retVal = methodGetX.invoke(p1);
System. out .println(retVal);
return pd ;
}
}