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

      

  • 相关阅读:
    70个经典的 Shell 脚本面试问题
    shell 知识点
    awk
    chinaunix-索引资料
    一篇文章学会shell工具篇之sed
    linux shell 之if-------用if做判断
    Python shell对比
    TortoiseGit功能介绍
    gitlab图形化使用教程 (mtm推荐)
    gitlab 服务器的搭建与使用全过程(一)
  • 原文地址:https://www.cnblogs.com/zhuawang/p/3378056.html
Copyright © 2011-2022 走看看