PropertyDescriptor
程序员文章站
2022-06-08 10:11:54
...
/** * */ 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; } }