内省操作javabean属性

来源:互联网 发布:英文原版书推荐 知乎 编辑:程序博客网 时间:2024/05/22 18:55

javabean  Person类

public class Person {private String name;private String password;private int age;public String getAb(){return null;}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;}}

内省操作

import java.beans.BeanInfo;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.Method;import org.junit.Test;//使用内省API操作bean的属性public class Demo1 {// 得到bean的所有属性@Testpublic void test1() throws Exception {BeanInfo info = Introspector.getBeanInfo(Person.class, Object.class);PropertyDescriptor[] pds = info.getPropertyDescriptors();for (PropertyDescriptor pd : pds) {System.out.println(pd.getName());}}// 得到bean的指定属性:get@Testpublic void test2() throws Exception {Person p = new Person();PropertyDescriptor pd = new PropertyDescriptor("age", Person.class);// 得到属性的写方法,为属性赋值Method method = pd.getWriteMethod(); // setAgemethod.invoke(p, 45);// System.out.println(p.getAge());// 获取属性值method = pd.getReadMethod();System.out.println(method.invoke(p, null));}//获取当前操作属性的类型@Testpublic void test3() throws Exception {Person p = new Person();PropertyDescriptor pd = new PropertyDescriptor("age", Person.class);System.out.println(pd.getPropertyType());}}


0 0
原创粉丝点击