Java高级特性 内省
来源:互联网 发布:mac大型单机游戏 编辑:程序博客网 时间:2024/05/21 10:18
Java內省在计算机编程中定义:通过Java內省可以获取bean是什么,能做什么。我个人理解:java语言对Bean类属性、事件一种缺省的处理方法;例如类中有属性 name, 那我们可以通过 getName,setName 来得到其值或者设置新的值。通过 getName/setName 来访问 name 属性,这就是默认的规则。 Java 中提供了一套 API 用来访问某个属性的 getter/setter 方法,通过这些 API 可以使你不需要了解这个规则(但你最好还是要搞清楚),这些 API 存放于包 java.beans 中。
一般的做法是通过类 Introspector 来获取某个对象的 BeanInfo 信息,然后通过 BeanInfo 来获取属性的描述器( PropertyDescriptor ),通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法,然后我们就可以通过反射机制来调用这些方法。下面介绍一个简单的例子:
BeanInfo beanInfo=Introspector.getBeanInfo(clazz.getClass());
PropertyDescriptor[] pds=beanInfo.getPropertyDescriptors();
for(PropertyDescriptor pd:pds){
if(propertyName.equals(pd.getName())){
Method methodSet=pd.getWriteMethod();//set方法
methodSet.invoke(clazz, value);
Method methodGet=pd.getReadMethod(); //get方法 retVal=methodGet.invoke(clazz);
}
}
內省的本质是:获取bean类的get/set方法,获取或者赋值属性。核心是使用java反射。
0 0
- Java高级特性 内省
- java高级语言特性
- java 高级特性
- JAVA基础高级特性
- java的高级特性
- java高级特性
- java高级特性_2
- JAVA高级特性(二)
- JAVA高级特性(二)
- Java高级特性
- JAVA高级特性总结
- JAVA高级特性总结
- JAVA高级特性(键人岐)
- java的高级特性
- java高级特性
- Java高级特性-Enum
- Java高级特性-annotation
- java 高级特性-反射
- opencv像素点获取
- 设计模式
- 前端---div 显示与隐藏
- Eclipse配色
- 视觉机器学习20讲 KNN
- Java高级特性 内省
- 自定义进度条样式
- 七个对我最重要的职业建议(译文)
- 志同道合者为兄弟
- ASP.NET MVC (Razor)开发 <<周报与绩效考核系统>> 总结与分享
- Blocks
- 1、checklistbox 用法总结 http://blog.sina.com.cn/s/blog_4cf58c9c010106mx.html
- 【Android】Broadcast Receiver的基本使用,推一条广播给多个Receiver
- .net 开源了