zoukankan      html  css  js  c++  java
  • java的内省(introspector)

    package com.wzh.test.introspector;
    
    import java.beans.BeanInfo;
    import java.beans.IntrospectionException;
    import java.beans.Introspector;
    import java.beans.PropertyDescriptor;
    import java.lang.reflect.Method;
    
    import org.junit.Test;
    
    //使用内省API操作Bean的属性
    public class Demo1 {
    
    	@Test
    	public void test() throws Exception{
    //		BeanInfo info=Introspector.getBeanInfo(Person.class);
    //		BeanInfo info=Introspector.getBeanInfo(Class.forName("com.wzh.test.introspector.Person"));
    		BeanInfo info=Introspector.getBeanInfo(Person.class,Object.class);
    		PropertyDescriptor[] pds=info.getPropertyDescriptors();
    		for(PropertyDescriptor pd : pds){
    			System.out.println(pd.getName());
    		}
    	}
    	
    	@Test
    	public void test2() throws Exception{
    		Person p=new Person();
    		PropertyDescriptor pd=new PropertyDescriptor("age", Person.class);
    		Method m=pd.getWriteMethod();
    		m.invoke(p,45);
    		
    		System.out.println("getAge:"+p.getAge());
    	}
    	
    	//获取当前操作的属性的类型
    	@Test
    	public void test3() throws IntrospectionException{
    		Person p=new Person();
    		PropertyDescriptor pd=new PropertyDescriptor("age", Person.class);
    		System.out.println(pd.getPropertyType());
    	}
    }
    

      

  • 相关阅读:
    C语言寒假大作战03
    C语言寒假大作战02
    C语言寒假大作战01
    助教学期总结
    第十六周助教总结
    C语言I博客作业11
    第十五周助教总结
    C语言I博客作业10
    第十四周助教总结
    C语言寒假大作战03
  • 原文地址:https://www.cnblogs.com/zhuawang/p/3378056.html
Copyright © 2011-2022 走看看