JAVA内省(Introspector)
来源:互联网 发布:windows无法识别音响 编辑:程序博客网 时间:2024/06/05 10:51
什么是Java内省:内省是Java语言对Bean类属性、事件的一种缺省处理方法。
Java内省的作用:一般在开发框架时,当需要操作一个JavaBean时,如果一直用反射来操作,显得很麻烦;所以sun公司开发一套API专门来用来操作JavaBean
- package com.javax.iong.javabean0301;
- public class Person {
- private String name;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- private int age;
- }
- package com.javax.iong.javabean0301;
- import java.beans.BeanInfo;
- import java.beans.Introspector;
- import java.beans.PropertyDescriptor;
- import java.lang.reflect.Method;
- import org.junit.Test;
- public class Test1 {
- @Test
- public void tes1() throws Exception {
- Class<?> cl = Class.forName("com.javax.iong.javabean0301.Person");
- // 在bean上进行内省
- BeanInfo beaninfo = Introspector.getBeanInfo(cl, Object.class);
- PropertyDescriptor[] pro = beaninfo.getPropertyDescriptors();
- Person p = new Person();
- System.out.print("Person的属性有:");
- for (PropertyDescriptor pr : pro) {
- System.out.print(pr.getName() + " ");
- }
- System.out.println("");
- for (PropertyDescriptor pr : pro) {
- // 获取beal的set方法
- Method writeme = pr.getWriteMethod();
- if (pr.getName().equals("name")) {
- // 执行方法
- writeme.invoke(p, "xiong");
- }
- if (pr.getName().equals("age")) {
- writeme.invoke(p, 23);
- }
- // 获取beal的get方法
- Method method = pr.getReadMethod();
- System.out.print(method.invoke(p) + " ");
- }
- }
- @Test
- public void test2() throws Exception {
- PropertyDescriptor pro = new PropertyDescriptor("name", Person.class);
- Person preson=new Person();
- Method method=pro.getWriteMethod();
- method.invoke(preson, "xiong");
- System.out.println(pro.getReadMethod().invoke(preson));
- }
- }
0 0
- Java 内省技术(Introspector)
- JAVA内省 Introspector
- java (内省)Introspector
- Java内省IntroSpector应用
- JAVA内省(Introspector)
- Java内省IntroSpector应用
- Java内省IntroSpector应用
- java内省(Introspector)
- Java内省机制IntroSpector
- JAVA内省(Introspector)
- JAVA Introspector内省用法
- Java-内省(Introspector)
- Java内省introspector
- java内省Introspector
- java 中的内省 introspector
- Java Introspector(内省)
- java内省(Introspector)简介
- java反射与内省(Introspector)
- mysq 锁机制详解
- java各种读取properties文件方法
- hadoop问题之java.net.NoRouteToHostException: 没有到主机的路由
- hdu 5312 Sequence
- HDU - 2732 Leapin' Lizards(ISAP Dinic EK)
- JAVA内省(Introspector)
- Android中收货地址管理Demo
- python常用函数
- Python学习之类
- 数据库连接池DBCP和C3P0
- 高斯平滑 高斯模糊 高斯滤波器 ( Gaussian Smoothing, Gaussian Blur, Gaussian Filter ) C++ 实现
- ios CAAnimation动画结束后会闪烁一下
- 第一篇,老本行,聊聊颜色和光谱
- (转载)iOS开发中断言的使用—NSAssert()