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());
    	}
    }
    

      

  • 相关阅读:
    Java追加文件内容的三种方法
    3种方法关闭Java线程
    linux系统登陆过程
    swift正点
    swift简介(东拼西凑,看看就的了)
    变量设置和查看
    进程调度优先级
    获取进程对应的UID登陆用户
    进程会计
    system调用
  • 原文地址:https://www.cnblogs.com/zhuawang/p/3378056.html
Copyright © 2011-2022 走看看