package Chapter5; import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; /* * javaå çIntrospectionï¼java JDK䏿ä¾ä¸å¥æ¹æ³è®¿é®JavaBeançgetï¼setæ¹æ³ * */ public class IntrospectionTest { public static void main(String[] args) { try { Class userClass=Class.forName("Chapter5.User"); User user=(User) userClass.newInstance(); BeanInfo beanInfo=Introspector.getBeanInfo(userClass); //å¾å°ægetsetæ¹æ³ç屿§å表 PropertyDescriptor[] pros= beanInfo.getPropertyDescriptors(); for(PropertyDescriptor pro:pros){ System.out.println("--屿§"+pro.getName()); if(pro.getName().equals("name")){ //å¾å°åæ¹æ³ System.out.println("æ§è¡nameçåæ¹æ³"); Method setMethod= pro.getWriteMethod(); setMethod.invoke(user, "å¼ ä¸"); }else if(pro.getName().equals("number")){ //å¾å°åæ¹æ³ Method setMethod= pro.getWriteMethod(); setMethod.invoke(user, 1); } if(pro.getName().equals("name")||pro.getName().equals("number")){ //å¾å°è¯»æ¹æ³ Method getMethod=pro.getReadMethod(); System.out.println("getæ¹æ³ï¼"+getMethod.invoke(user)); } } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IntrospectionException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }