有一个Person类
public class Person { private String name; private String password; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
操作如下
public void test() throws Exception{ //得到bean的属性并去除从Object继承来的属性 BeanInfo info = Introspector.getBeanInfo(Person.class,Object.class); PropertyDescriptor[] pds = info.getPropertyDescriptors(); for(PropertyDescriptor pd : pds){ System.out.println(pd.getName()); } }
//操作bean的指定属性age
public void test2() throws Exception{ Person p = new Person(); PropertyDescriptor pd = new PropertyDescriptor("age",Person.class); //得到属性的写方法,为属性赋值 Method method = pd.getWriteMethod(); method.invoke(p, 45); System.out.println(p.getAge()); }
//获取当前操作属性的类型
public void test3() throws Exception{ Person p = new Person(); PropertyDescriptor pd = new PropertyDescriptor("age",Person.class); System.out.println(pd.getPropertyType()); }
注意要导入必要的包