Java中对JavaBean的属性进行操作时可以使用内省introspector
代码如下
JavaBean:Person.java
class Person{
private String name;
private int age;
private Date birhtday;
//省略get/set方法
} test1.java
public void test01() throws Exception{
Person person = new Person();
BeanInfo info = Introspector.getBeanInfo(person.getClass(),Object.class);
//得到类的属性描述器
PropertyDescriptor[] propertyDescriptor = info.getPropertyDescriptors();
for(PropertyDescriptor pd:propertyDescriptor){
Method method = pd.getWriteMethod();//得到该属性的写方法(setXxx方法),为属性赋值
System.out.println(method.getName());
}
} test2.java
public void test02() throws Exception{
Person p = new Person();
PropertyDescriptor pd = new PropertyDescriptor("age",p.getClass()); //得到对象某个属性的描述器
Method method = pd.getWriteMethod(); //获得某个对象的写方法(setXxx方法)
method.invoke(p,18);
method = pd.getReadMethod(); //获得某个对象的读方法(getXxx方法)
System.out.println(method.invoke(p,null));
System.out.println(pd.getPropertyType()); //得到该属性的类型
}
本文介绍如何使用Java的内省机制introspector操作JavaBean的属性,包括获取所有属性的描述器、读写特定属性的方法及属性类型。示例代码展示了如何通过反射调用这些方法来设置和获取属性值。
162

被折叠的 条评论
为什么被折叠?



