中国文化之博大精深之内省还是内省,究竟他是读(xing)还是(sheng)呢,通过百度引擎貌似晓得,他是读(xing)。
下面我们就对内省做一下简单介绍:
- 内省是java语言对bean类属性、事件的一种处理方法
- 为什么要学内省?开发框架时,经常需要使用java对象的属性来封装程序的数据,每次都使用反射技术完成此类操作过于麻烦,所以sun公司开发了一套API,专门用于操作java对象的属性。
- 内省访问JavaBean属性的两种方式:
- 通过PropertyDescriptor类操作Bean的属性
- 通过Introspector类获得Bean对象的 BeanInfo,然后通过 BeanInfo 来获取属性的描述器( PropertyDescriptor ),通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法,然后通过反射机制来调用这些方法。
/*
* 通过Introspector类获得Bean对象的 BeanInfo, 然后通过 BeanInfo 来获取属性的描述器(
* PropertyDescriptor ) 通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法,
* 然后通过反射机制来调用这些方法。
*/
@Test
public void test() throws IntrospectionException, IllegalArgumentException,
IllegalAccessException, InvocationTargetException {
Student st = new Student();
// 1、通过Introspector类获得Bean对象的 BeanInfo,
BeanInfo entity = Introspector.getBeanInfo(Student.class);
// 2、然后通过 BeanInfo 来获取属性的描述器( PropertyDescriptor )
PropertyDescriptor pdrs[] = entity.getPropertyDescriptors();
// 3、通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法,
for (PropertyDescriptor pd : pdrs) {
// System.out.println(pd.getName());
/*
* System.out.println(pd.getShortDescription());
* System.out.println(pd.getDisplayName());
*/
if (pd.getName().equals("age")) { //age是什么类型?
Method md = pd.getWriteMethod();
md.invoke(st, 12);
}
}
// System.out.println(st.getAge());
}
package cn.csdn.Introspector;
public class Student {
private String name;
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
private String email;
public String getXxx(){
return "Longmanfei";
}
}
分享到:
相关推荐
特别详细的java内省思维导图,全方面介绍java内省的功能以及用法用处。
内省机制
小议布赖恩·温的公众理解科学理论研究内省模型.doc
JavaBean及内省,介绍了JavaBean的概念、属性、使用、执行原理以及对内省的介绍
NULL 博文链接:https://newjueqi.iteye.com/blog/397132
NULL 博文链接:https://tianyami.iteye.com/blog/1576854
4.9反射内省.txt.xmind
主要介绍了Java 内省(Introspector)深入理解的相关资料,需要的朋友可以参考下
该项目旨在提供重型重构和内省工具,可以独立使用或作为文本编辑器的后端来提供智能代码完成。
内省
虚拟机内省技术研究,杨先强,双锴,随着云计算的流行,虚拟机内省(Virtual Machine Introspection, VMI)技术及工具逐渐被用来监控IaaS云中虚拟机的行为。在这些技术的帮助下,�
浅谈初中思想品德教学中的启迪与内省
Introspected 可序列化数组和JSON友好对象的内省
return-to-abort() - 使用代码内省来防止堆栈崩溃
内含commons-beanutils-1.9.2.jar,commons-logging-1.2.jar
JAVA的内省机制(introspector)与反射机制(reflection).docx
初中语文语文论文祝福:“多余人”痛苦内省的矛盾呈现
BeastForm-内省数据库并动态生成模型 版本 版本0.000001 概要 use BeastForm; use Mojolicious::Lite; get "/" => sub { $_[0]->stash( drivers => BeastForm::drivers ); $_[0]->render( template => "form....
酷炫javaweb后台系统适合初学者【里面有封装 反射内省等】界面很nice 实现了用户模块,技术由浅入深,纯servlet 以及对servlet进行封装处理!
JAVA反射机制、注解、动态加载类、动态调用对象方法