首页 > 代码库 > Java内省技术

Java内省技术

-------<a href=http://www.mamicode.com/"http://www.itheima.com/"">android培训</a>、<a href=http://www.mamicode.com/"http://www.itheima.com/" ">java培训</a>期待与您交流!----------

JavaBean

Java中有一种特殊的类,它用于程序中两个模块的信息交换。它的特点是将成员变量私有化。用gettersetter方法获取设置其成员变量的值。

一个简单的JavaBean类。

public class dog{
private String name=“旺财”;

private int age=2;

public void setName(String name){
this.name=name
      }

 

Public void setAge(int age){
this.age=age;
      }

 

Public String getName()
return name;
}

Public String getAge()
return age
}

当我们用反射技术去获取或设置JavaBean类的字段时,一般方式如下面代码:

 

 

 

 

很显然这做很繁琐麻烦。要知道在开发中会有很多的JavaBean类。如果都用这种原始的方式,oh my god.所以sun公司提供了一套对于JavaBean类反射的API来简化我们的操作。使用这套API来操作JavaBean类,就叫做內省。

以下代码来演示根据sun公司提供的API內省步骤。

方法一:

 

 

方法二:

 

 

由于程序猿觉得sun公司提供的API进行內省操作还是觉得麻烦(不要怪程序猿们太懒,懒也是推动世界进步的一种动力嘛)一个开源组织就又开发了一套API,来更简便的进行內省操作,以下代码演示用这种API进行的内省操作。

用这种方式内省必须要导入两个第三方jar包:BeanUtilslogging

具体代码如下

 

 

有没有震撼于它的简洁啊。SunAPI跟他比简直弱爆了。而且它不但简洁还帮我们省去了类型转换的工作。

BeanUtils.getProperty(d, "name");返回的是字符串。

BeanUtils.setProperty(d, "name""小嘿嘿");设置的值不管是什么类型都可以是用字符串形式进行传入。因为在javaWeb开发时,我们都是从网页上获取字符串,将字符串写到网页上,上诉方式取出至于设置值都用字符串形式,免去了我们转换类型的烦恼。

-------<a href=http://www.mamicode.com/"http://www.itheima.com/"">android培训</a>、<a href=http://www.mamicode.com/"http://www.itheima.com/" ">java培训</a>期待与您交流!----------