PropertyDescriptor

/**
*
*/
package com.depin.test.propertydescriptor;

import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;

/**
* @author depinhu
* 获取javabean 的方法的 两种方法
* 2012-3-14
*/
public class PropertyDescriptorTest {
public PropertyDescriptorTest() {
}

public static void main(String args[]) {
TestVo testvo = new TestVo();
testvo.setName("hello world");
String propertyName = "name";
PropertyDescriptor pd = null;
try {
pd = new PropertyDescriptor(propertyName, testvo.getClass());
Method getter = pd.getReadMethod();
Object value = getter.invoke(testvo);
System.out.println(value);

System.out.println(getProperty_2(testvo, propertyName));
} catch (IntrospectionException e) {
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

private static Object getProperty_2(Object pt1, String propertyName)
throws Exception {
BeanInfo beanInfo = Introspector.getBeanInfo(pt1.getClass());
PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
Object reValue = null;
for (PropertyDescriptor pd : pds) {
if (pd.getName().equals(propertyName)) {
Method methodGetX = pd.getReadMethod();
reValue = methodGetX.invoke(pt1);
break;
}
}

return reValue;
}
}


/**
*
*/
package com.depin.test.propertydescriptor;

/**
* @author depinhu
*
* 2012-3-14
*/
public class TestVo {
private int age;
private String name;

public TestVo() {
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值