zoukankan      html  css  js  c++  java
  • 内省(Inrospector)学习总结


    一、Introspector介绍


    内省主要为了剖析JavaBean;

    JavaBean:

    (1)一个public的类;

    (2)主要用于存储数据;

    (3)getter & setter方法;

    需要涉及Inrospector,BeanInfo,PropertyDescriptor等类;


    二、Introspector开发


    package org.xiazdong.introspector;
    
    import java.beans.BeanInfo;
    import java.beans.Introspector;
    import java.beans.PropertyDescriptor;
    import java.lang.reflect.Method;
    
    import org.junit.Test;
    import org.xiazdong.Person;
    
    public class IntrospectorDemo01 {
    	//获得person类的所有bean属性
    	@Test
    	public void test1() throws Exception{
    		BeanInfo info = Introspector.getBeanInfo(Person.class);
    		PropertyDescriptor[] pds = info.getPropertyDescriptors();
    		for(PropertyDescriptor pd:pds){
    			System.out.println(pd.getPropertyType()+" "+pd.getName());
    		}
    	}
    	//获得Person(不包含Object类)的所有bean属性
    	@Test
    	public void test2() throws Exception{
    		BeanInfo info = Introspector.getBeanInfo(Person.class,Object.class);
    		PropertyDescriptor[] pds = info.getPropertyDescriptors();
    		for(PropertyDescriptor pd:pds){
    			System.out.println(pd.getPropertyType()+" "+pd.getName());
    		}
    	}
    	//设置Person的age属性
    	@Test
    	public void test3() throws Exception{
    		Person p = new Person();
    		PropertyDescriptor pd = new PropertyDescriptor("age", Person.class);
    		Method method = pd.getWriteMethod();
    		method.invoke(p, 20);
    		System.out.println(p.getAge());
    	}
    	//调用Person的getAge()
    	@Test
    	public void test4() throws Exception{
    		Person p = new Person("xiazdong",30);
    		PropertyDescriptor pd = new PropertyDescriptor("age", Person.class);
    		Method method = pd.getReadMethod();
    		System.out.println(method.invoke(p, null));
    	}
    }


    作者:xiazdong
    出处:http://blog.xiazdong.info
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
  • 相关阅读:
    reorder-list
    HMM基础
    binary-tree-preorder-traversal
    binary-tree-postorder-traversal
    GMM基础
    (七)打印机驱动设置—认识打印机接口
    (八)打印机驱动设置—串口的设置
    (五)打印机驱动设置—没有开不了的钱箱
    (六)打印机驱动设置—装完驱动后没有打印机图标
    (四)揭开打印机驱动的神秘面纱
  • 原文地址:https://www.cnblogs.com/xiazdong/p/3058056.html
Copyright © 2011-2022 走看看