Java内省introspector

本文介绍如何使用Java的内省机制introspector操作JavaBean的属性,包括获取所有属性的描述器、读写特定属性的方法及属性类型。示例代码展示了如何通过反射调用这些方法来设置和获取属性值。

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());	//得到该属性的类型
	}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值