PropertyDescriptor
程序员文章站
2022-05-24 09:17:29
...
/**
*
*/
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;
}
}