类Introspector- -
来源:互联网 发布:淘宝直通车展示位置 编辑:程序博客网 时间:2024/05/31 19:37
/** 系统定义的工具** 类Introspector* 用于分析一个Bean** Introspector.getBeanInfo()* 用于开始分析Bean,返回一个相关的BeanInfo对象* 第一个参数 待分析Bean的类* 第二个参数 可选 决定分析到该Bean的哪一层基类上去。* 如果不带第二个参数的话,分析所有的属性** 对于任何一个Java的类,都是从Object类继承过来的* Object.getClass() * 用于获得该对象所依照的类* Object.getSuperclass()* 用于获得该对象所依照的类的父类**/import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.beans.*;import java.io.*;import java.lang.reflect.Method;public class myBeanIntrospector{ public myBeanIntrospector() { try { //实例化一个Bean Test2 beanObj = new Test2();
//依据Bean产生一个相关的BeanInfo类 BeanInfo bInfoObject = Introspector.getBeanInfo(beanObj.getClass(),beanObj.getClass().getSuperclass());
//定义一个用于显示的字符串 String output = "";
//开始自省
/* * BeanInfo.getMethodDescriptors() * 用于获取该Bean中的所有允许公开的成员方法,以MethodDescriptor数组的形式返回 * * MethodDescriptor类 * 用于记载一个成员方法的所有信息 * MethodDescriptor.getName() * 获得该方法的方法名字
* MethodDescriptor.getMethod() * 获得该方法的方法对象(Method类) * * Method类 * 记载一个具体的的方法的所有信息 * Method.getParameterTypes() * 获得该方法所用到的所有参数,以Class数组的形式返回 * * Class..getName() * 获得该类型的名字 */ output = "内省成员方法:/n"; MethodDescriptor[] mDescArray = bInfoObject.getMethodDescriptors(); for (int i=0;i<mDescArray.length ;i++ ) { //获得一个成员方法描述器所代表的方法的名字 String methodName = mDescArray[i].getName(); String methodParams = new String(); //获得该方法对象 Method methodObj = mDescArray[i].getMethod(); //通过方法对象获得该方法的所有参数,以Class数组的形式返回 Class[] parameters = methodObj.getParameterTypes(); if (parameters.length>0) { //获得参数的类型的名字 methodParams = parameters[0].getName(); for (int j=1;j<parameters.length ;j++ ) { methodParams = methodParams + "," + parameters[j].getName(); } } output += methodName + "(" + methodParams + ")/n"; } System.out.println(output);
/* * BeanInfo.getPropertyDescriptors() * 用于获取该Bean中的所有允许公开的成员属性,以PropertyDescriptor数组的形式返回 * * PropertyDescriptor类 * 用于描述一个成员属性 * * PropertyDescriptor.getName() * 获得该属性的名字 * * PropertyDescriptor.getPropertyType() * 获得该属性的数据类型,以Class的形式给出 * */ output = "内省成员属性:/n"; PropertyDescriptor[] mPropertyArray = bInfoObject.getPropertyDescriptors(); for (int i=0;i<mPropertyArray.length ;i++ ) { String propertyName = mPropertyArray[i].getName();
Class propertyType = mPropertyArray[i].getPropertyType();
output += propertyName + " ( " + propertyType.getName() + " )/n"; } System.out.println(output);
/* * BeanInfo.getEventSetDescriptors() * 用于获取该Bean中的所有允许公开的成员事件,以EventSetDescriptor数组的形式返回 * * EventSetDescriptor类 * 用于描述一个成员事件 * * EventSetDescriptor.getName() * 获得该事件的名字 * * EventSetDescriptor.getListenerType() * 获得该事件所依赖的事件监听器,以Class的形式给出 * */ output = "内省绑定事件:/n"; EventSetDescriptor[] mEventArray = bInfoObject.getEventSetDescriptors(); for (int i=0;i<mEventArray.length ;i++ ) { String EventName = mEventArray[i].getName();
Class listenerType = mEventArray[i].getListenerType();
output += EventName + "(" + listenerType.getName() + ")/n"; } System.out.println(output);
System.out.println("write by esonghui :)");
} catch (Exception e) { System.out.println("异常:" + e); } }
public static void main(String[] args) { new myBeanIntrospector(); }}
from:http://fanglulu.51.net/java/javacode/myBeanIntrospector.java
- 类Introspector- -
- 类Introspector
- 类Introspector的使用
- 类Introspector的使用
- Introspector类介绍
- 类Introspector的使用,自省
- 内省——Introspector类
- 内省、JavaBean、PropertyDescriptor类、Introspector类、BeanUtils工具包
- 使用Java的Introspector类操作JavaBean的属性
- 内省(Introspector)
- 内省(Introspector)
- javabean Introspector
- 内省(Introspector)
- Introspector总结
- IntroSpector内省
- 内省(Introspector)
- JDK提供的获取类的相关属性的方法Introspector
- 用IntroSpector操作JavaBean
- windows下用apache+.htacess给目录加密
- XP、Vista双系统删除Vista
- XP、Vista双系统删除Vista
- String.Format格式说明
- 权限算法
- 类Introspector- -
- 请对新人宽容点
- 中国身份证号码验证,支持15,18位,可验证成功90%的身份证号
- Dom4j下载及使用Dom4j读写XML简介
- 三层的主从表设置
- 各大搜索引擎网站登录入口
- OPCAutomation_TLB.pas(1240): Cannot assign to a read-only property 问题解决
- 我的e-mail通訊方式
- .Net平台AOP技术研究