----------------- android培训、java培训、期待与您交流! -----------------
内省
1. JavaBean
package introSpector;
public class IntroSpectorDemo {
// javaBean符合特殊格式的类。 方法的名字以get或者set开头
// 通过get和set方法判断属性。
// Age-->如果第二个字母是小的,则把第一个字母变成小的-->age
// gettime-->time
// getCPU-->CPU
// setTime-->time
// getCpU-->cpU
public static void main(String[] args) {
}
/*一个符合JavaBean特点的类可以当作普通类一样进行使用,但把它当JavaBean用肯定需要带来一些额外的好处,我们才会去了解和应用JavaBean!好处如下:
在Java EE开发中,经常要使用到JavaBean。很多环境就要求按JavaBean方式进行操作,别人都这么用和要求这么做,那你就没什么挑选的余地!
JDK中提供了对JavaBean进行操作的一些API,这套API就称为内省。如果要你自己去通过getX方法来访问私有的x,怎么做,有一定难度吧?用内省这套api操作JavaBean比用普通类的方式更方便。
*/
}
2. 内省的综合案例
private static void method2() throws Exception {
// BeanInfo代表了 java类的细节。
BeanInfo beanInfo = Introspector.getBeanInfo(ReflectPoint.class);
PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
String popertyName=null;
ReflectPoint p = new ReflectPoint(11, 2);
for(PropertyDescriptor pd:pds){
if(pd.getName().equals(popertyName)){
Method method1 = pd.getReadMethod();
String retVal = (String) method1.invoke(p);
System.out.println(retVal);
}
}
}
private static void method1() throws IntrospectionException,
IllegalAccessException, InvocationTargetException {
// 通过PropertyDescriptor获取属性的基本信息。内部用了反射。
ReflectPoint p = new ReflectPoint(6, 7);
PropertyDescriptor pd = new PropertyDescriptor("x",ReflectPoint.class);
Object retVal = pd.getReadMethod().invoke(p);
System.out.println(retVal);
pd.getWriteMethod().invoke(p, 8);
System.out.println(p.getX());
}
3. BeanUtils工具包
演示用eclipse如何加入jar包,先只是引入beanutils包,等程序运行出错后再引入logging包。
在前面内省例子的基础上,用BeanUtils类先get原来设置好的属性,再将其set为一个新值。
get属性时返回的结果为字符串,set属性时可以接受任意类型的对象,通常使用字符串。
用PropertyUtils类先get原来设置好的属性,再将其set为一个新值。
get属性时返回的结果为该属性本来的类型,set属性时只接受该属性本来的类型。
演示去掉JavaBean(ReflectPoint)的public修饰符时,BeanUtils工具包访问javabean属性时出现的问题。
分享到:
相关推荐
特别详细的java内省思维导图,全方面介绍java内省的功能以及用法用处。
小议布赖恩·温的公众理解科学理论研究内省模型.doc
它将内省一个数据库表(或多个表),并将生成可用于访问表的工件。这减轻了设置对象和配置文件以与数据库表进行交互的麻烦。MBG试图对简单CRUD(创建,检索,更新,删除)的大部分数据库操作产生重大影响。您仍将...
内省机制
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
初中语文语文论文祝福:“多余人”痛苦内省的矛盾呈现
内省
请勿使用:正在进行的工作 这是对制作一个将内省 npm ...如果“离线”模式要求我们启动一个服务器并将 npm 切换到它——狡猾的 创建一个单独的本地可搜索 npm 缓存,您可以从 registry.npmjs.com 和/或本地缓存填充
BeastForm-内省数据库并动态生成模型 版本 版本0.000001 概要 use BeastForm; use Mojolicious::Lite; get "/" => sub { $_[0]->stash( drivers => BeastForm::drivers ); $_[0]->render( template => "form....