有关内省的一些事

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

那什么是JavaBean文件呢

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

1.有无参的构造方法

2.属性是私有的

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

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

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

这个我们需要引入一个 类 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方法.

  }

}

时间: 2024-10-12 08:59:05

有关内省的一些事的相关文章

黑马程序猿_反射、内省、泛型

------- android培训.java培训.期待与您交流! ---------- 反射:  反射就是把Java类中的各种成分映射成对应的java类. 构造方法的反射: onstructor类代表某个类中的一个构造方法. 得到某个类全部的构造方法: Constructor [] constructors=Class.forName("java.lang.String").getConstructors(); 得到某一个构造方法: Constructorconstructor=Cla

高新技术---内省、注解、类加载器

第一讲     内省引出JavaBean 一.内省 1.内省对应的英文单词为IntroSpector,英文意思是检查.视察.体检之意,对于程序即对内部进行检查,了解更多的底层细节. 2.内省的作用:主要针对JavaBean进行操作. 二.JavaBean 1.简述: 1)JavaBean是一种特殊的Java类,主要用于传递数据信息,这种Java类中的方法主要用于访问私有的字段,且方法符合某种特殊的命名规则. 2)它是一种特殊的Java类,其中的方法符合特殊的规则.只要一个类中含有get或is和s

集体内省的本质-我对中医养生的看法

中华传统内省自身,罗马文化放眼世界.多么痛的领悟!为什么中国总是内向,不懂开拓,这是历史使然,跟地缘绝对相关.看看我们的几个外向拓展的年代,西汉时期,迄至武皇后的唐代,明永乐时期,方向几乎都是一个:西北!因为这个方向是唯一可以出去的通道(那个时候没有波音,空客和远洋邮轮...).只要那个通道一但封闭,整个华夏瞬间转为内省.通道封闭的原因多种多样,内在的原因有财政问题,补给问题,内乱问题,外在的因素有中亚动荡,西亚东欧无生意.我们可以看见,除了那个通道之外,东边是大海,西南为高原高山,北部是冰原无

JAVA中反射机制五(JavaBean的内省与BeanUtils库)

内省(Introspector) 是Java 语言对JavaBean类属性.事件的一种缺省处理方法. JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且方法名符合某种命名规则.如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种对象称为“值对象”(Value Object),或“VO”.方法比较少.这些信息储存在类的私有变量中,通过set().get()获得. 例如类UserInfo : package com.peidasoft.in

JAVAWEB开发之Session的追踪创建和销毁、JSP详解(指令,标签,内置对象,动作即转发和包含)、JavaBean及内省技术以及EL表达式获取内容的使用

Session的追踪技术 已知Session是利用cookie机制的服务器端技术,当客户端第一次访问资源时 如果调用request.getSession() 就会在服务器端创建一个由浏览器独享的session空间,并分配一个唯一且名称为JSESSIONID的cookie发送到浏览器端,如果浏览器没有禁用cookie的话,当浏览器再次访问项目中的Servlet程序时会将JSESSIONID带着,这时JSESSIONID就像唯一的一把钥匙  开启服务器端对应的session空间,进而获取到sessi

关于打码的一些事

1.今晚打代码算是遇到好多问题了,但是谷歌,stackoverflow,谷歌翻译,一点点都解决了,问别人也没回,所以说还是靠自己,记得更久一些,自己栽过的坑,印象会更深刻. 2.静下心来做一件事,很多事情没想象的那么难的. 3.喜欢这种学习后的充实感,不会像打完游戏或者看完视频一样迷茫. 4.继续加油吧. 5.原来右键网页图片可以get到url.

10682 deathgod想知道的事(数论)

10682 deathgod想知道的事 该题有题解 时间限制:1000MS  内存限制:65535K提交次数:265 通过次数:14 题型: 编程题   语言: G++;GCC Description 一只蚂蚁从衣服地图上爬过留下痕迹,deathgod看到后在地图上建了个坐标,将蚂蚁留下的痕迹分成多条线段首位相连而成, 且那些线段的端点都是整数点,现在他想知道这只蚂蚁经过了坐标中多少个整数点. 输入格式 第一行输入一个整数t,表示case数:对于每个case,第一行输入一个整数n(0<=n<=

转 离婚前夜悟出的三件事

文/铁眼(简书作者)原文链接:http://www.jianshu.com/p/832be4f659a0?utm_campaign=hugo&utm_medium=reader_share&utm_content=note著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 前两天,在一次吃饭的时候,感觉嘴里有异样,用牙签一挑,一颗智齿酥了,脱落下来.当时很惊恐,自己才30多点,牙齿就坏了,那时只有后悔的想法,如果再往回调两年时间,我一定好好认真的刷牙,保养好牙齿. 牙齿如此坚固

专业房产经纪人必须知道的九件事

1 顾客说的话不全信 顾客是上帝,但是上帝从来不会把自己的心交给他的下人.80%的顾客因为对你抱有戒心,所以他是不会把自己的真实承受价格告诉你的,当然这种留有余地的做法是人之常情.你要做的不过是告诉顾客你是多么的专业就可以了,你要让顾客相信你,这样,你的工作才能完成. 2 永远不要对顾客说没有 永远不要对顾客说没有,即便顾客的要求非常无理.我们接到一个电话,可能是形形***的,有细心询问,有侃侃而谈,我们怎么在一个电话间去判断这个顾客?如果判断对了,顾客对你的信任度就会加强,接下来一切工作都好办