Java-javabean内省

原创 2012年03月25日 00:11:55

android培训java培训、期待与您交流!

       JavaBean是一种特殊的java类,这种类的属性都必须拥有get和set方法,这样可以通过方法来获得类中的属性值或者进行一些修改。它主要用于数据的传递,该类的方法主要访问私有的字段。例如在两个模块间传递多个信息可以将这些信息封装在一个JAVABEAN中这种类的对象通常称为值对象(Value Object简称VO)。在这个类中属性是通过是根据方法名推断出来的以为根本就看不到java类内部的成员变量。在推断的时候有这样的规律,去掉set或者get后得到的子串中,如果第二个字符是小写的那么就把第一个变成小写,那么这个子串就是该类中的一个属性:如,setId—>id,id就是一个属性名;setLastlast,last就是一个属性名;setCPU-CPU,CPU就是一个属性名(第二个字母大写则第一个不用在转换为小写了);
      在视频中讲的主要是内省,老师说在直接用类的get方法来获得属性有难度。所以通过API提供的内省方式来获得比较容易。首先直接使用PropertyDescriptor类来获得一个类的某个名字的get和set属性方法。如果在构造该类的时候传了要获得的属性的名字那么这个类就是把该属性的get和set方法。

Class Person{
		private int x;
		public int y;
		public Person(int x){this.x = x;} 
		public int setX(int x){this.x = x;}
		public void getX() return this.x;
}
      用上面的话来理解就是在PropertyDescriptor m = PropertyDescriptor(“x”,Person.class);这个m中封装的就是getX和setX方法。然后再通过PropertyDescriptor类中获得属性的方法和获的写入属性的方法来进行属性值的得到和属性值的修改。
      属性值的获得:

Method m1 = m.getReadMethod();
m1.invoke(new Person(3));
属性值的修改:
Method m2 = m.getWriteMethod();
m2.invoke(new Person(3),1);

在就是老师讲了一个比较复杂的方法通过Introspector的一个静态方法来获得BeanInfo类型的对象,然后再通过该对象的getPorpertyDescriptor()方法来获得这个对象中封装的所有的含有get和set方法的属性。

Person p = new Person(3);
BeanInfo bi = Introspector.getBeanInfo(p.getClass());
		PropertyDescriptor[] pd = bi.getPropertyDescriptors();
		for(PropertyDescriptor pd1 : pd){
			System.out.println(pd1.getName());
			}
       打印的结果是class,x;
       当然这样的话,就简单多了,因为现在已经把知道了属性x对应的get和set方法在pd数组中存着,那么就可通过比较来确定最后的是set还是get方法并进行操作。

android培训java培训、期待与您交流!




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【java反射之】对javabean内省操作

内省(Introspector)是Java语言对Bean类属性、事件的一种缺省处理方法。例如类A中有属性name,那我们可以通过getName,setName来得到其值或者设置新的值。通过getNam...

黑马程序员--java中属性的包装 -内省和javaBean

---------------------- android培训、java培训、期待与您交流! ----------------------            与反射有关的内省 ---》...
  • yun90
  • yun90
  • 2011-11-16 03:45
  • 519

JAVA内省JavaBean(Introspector、BeanInfo和PropertyDescriptor)

JavaBean是一个特殊的java类,主要用于传递数据信息 (在我的博客"黑马程序员_android之SQLite项目分析 "中提到绘制表格时将读取数据库的数据写到了 一个Information类中...

Java基础视频教程-JavaBean内省

4-1 初识JavaBean与内省 ·JavaBean是一种特殊的Java类,主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。 ·如果要在两个模块之间传...

[学习笔记]Java内省机制(JavaBean)

概述 1. 定义 内省(Introspector)是Java对Bean类属性、事件的一种缺省处理方法。给定一个javabean对象,我们就可以通过内省的方式得到/调用它的所有的ge...

Java面向对象——JavaBean内省

面向对象 初识JavaBean与内省 JavaBean是一种特殊的Java类,主要用于传递数据信息,这种Java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。 如果要在两个模块之...

Java 基础加强 - JavaBean与内省操作

Java基础加强JavaBean与内省操作 一.JavaBean 1.     什么叫做JavaBean? JavaBean是一种特殊的Java类,主要用于传递数据信息,这种Java类中的方法主要用于...

javaBean类,以及Sun的java内省机制与apache的BeanUtils框架/工具简单应用

一、什么是符合规则的javaBean类? 具有:    .私有的字段(Field)   .对私有字段提供存取方法(读写方法)   .数量任意的业务方法 的类。 二、站在反射角度下的...

黑马程序员_张孝祥_Java基础加强_JavaBean、内省

----------- android培训、java培训、期待与您交流! ------------ IntroSpector --> JavaBean --> 特殊的Java类 什么是JavaB...

黑马程序员__JAVA高新技术--枚举及内省JavaBean、可变参数等知识点总结

-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------ 内省(Introspector):主要对javaBean进行操作。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)