码迷,mamicode.com
首页 > 其他好文 > 详细

有关内省的一些事

时间:2017-06-08 22:28:40      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:一些事   内省   system   script   write   bean   item   getbean   mil   

首先什么是内省呢,内省就是用来获得JavaBean的属性已经属性的getset方法

那什么是JavaBean文件呢

JavaBean文件就是,有特定格式的一个java类。有如下的条件我们就能够称为一个JavaBean

1.有无参的构造方法

2.属性是私有的

3.对于私有的属性提供公共的get,set方法。

 

对于这样的文件我们就能够成为是一个JavaBean文件了。

那我们怎么获得它的属性和对应的getset方法了?

这个我们需要引入一个 Introspector。这个类中有一个静态的方法

 

static BeanInfo     getBeanInfo(Class<?> beanClass)

(在 Java Bean 上进行内省,了解其所有属性、公开的方法和事件。)

 

这个方法返回一个BeanInfo类型的对象,获得了Bean文件的信息。我们在通过BeanInfo这个对象,调用它的方法 getPropertyDescriptors(),得到一个属性描述器。这个返回的是一个数组。数组中包含了所有的属性。

 

我们这里需要明确,一个Bean文件的属性,是由get,set确定的,并不是写了几个属性。

 

PropertyDescriptor[]  getPropertyDescriptors()

 

我们接下来可以对得到的属性数组进行遍历,可以得到每一个属性。

然后我们通过,

属性.getReadMethod()就能获得get方法

属性.getWriteMethod()就能获得set方法

 

 

public void demo1() throws Exception{

// 获得了Bean的信息

  BeanInfo beanInfo = Introspector.getBeanInfo(User.class);

  // 获得Bean的属性描述

  PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();

  for(PropertyDescriptor pd:pds){

    System.out.println(pd.getName());

    pd.getReadMethod(); // 获得get方法

    pd.getWriteMethod();// 获得set方法.

  }

}

 

有关内省的一些事

标签:一些事   内省   system   script   write   bean   item   getbean   mil   

原文地址:http://www.cnblogs.com/jinyu109/p/6964945.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!