内省操作javabean

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

package enums;

import java.beans.BeanInfo;

import java.beans.IntrospectionException; import java.beans.Introspector;

import java.beans.PropertyDescriptor; import ng.reflect.Method;

import org.junit.Test;

public class Introspec {

@Test

public void test1() throws Exception{//获得Bean的属性

BeanInfo

info=Introspector.getBeanInfo(Person1.class ,Object.class);//得到自己的属性,去除从Object类继承过来的属性

PropertyDescriptor[] pds =

info.getPropertyDescriptors();

for(PropertyDescriptor pd:pds){

System.out.println(pd.getName());

}

}

@Test

public void test2() throws Exception{//操作Bean的属性

Person1 p=new Person1();

PropertyDescriptor pd=new PropertyDescriptor("age",Person1.class);

//获得到属性的写方法,为属性赋值

Method method=pd.getWriteMethod();

method.invoke(p, 50);

//获取属性的值

method=pd.getReadMethod();

System.out.println(method.invoke(p, null));

}

@Test

public void test3() throws Exception{//操作Bean的属性

Person1 p=new Person1();

PropertyDescriptor pd=new PropertyDescriptor("age",Person1.class);

System.out.println(pd.getPropertyType()); //获取属性的类型

}

}

class Person1{

private String name;

public String getAb(){

return null;

}

public String getName() {

return name;

}

public void setName(String 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;

}

private String password;

private int age;

}

相关文档
最新文档