java (内省)Introspector
2013-12-02 12:06
260 查看
java (内省)Introspector
内省(Introspector) 是Java 语言对 JavaBean 类属性、事件的一种缺省处理方法
PropertyDescriptor类:
PropertyDescriptor类表示JavaBean类通过存储器导出一个属性。主要方法:
1. getPropertyType(),获得属性的Class对象;
2. getReadMethod(),获得用于读取属性值的方法;getWriteMethod(),获得用于写入属性值的方法;
3. hashCode(),获取对象的哈希值;
4. setReadMethod(Method readMethod),设置用于读取属性值的方法;
5. setWriteMethod(Method writeMethod),设置用于写入属性值的方法。
Introspector类:
将JavaBean中的属性封装起来进行操作。在程序把一个类当做JavaBean来看,就是调用Introspector.getBeanInfo()方法,得到的BeanInfo对象封装了把这个类当做JavaBean看的结果信息,即属性的信息。
getPropertyDescriptors(),获得属性的描述,可以采用遍历BeanInfo的方法,来查找、设置类的属性
public class BeanInfoUtil {
public static void setPropertyByIntrospector(UserInfo userInfo,String userName)throws Exception{
BeanInfo beanInfo=Introspector.getBeanInfo(UserInfo.class);
PropertyDescriptor[] proDescrtptors=beanInfo.getPropertyDescriptors();
if(proDescrtptors!=null&&proDescrtptors.length>0){
for(PropertyDescriptor propDesc:proDescrtptors){
if(propDesc.getName().equals(userName)){
Method methodSetUserName=propDesc.getWriteMethod();
methodSetUserName.invoke(userInfo, "ptu");
System.out.println("set userName:"+userInfo.getUserName());
break;
}
}
}
}
public static void getPropertyByIntrospector(UserInfo userInfo,String userName)throws Exception{
BeanInfo beanInfo=Introspector.getBeanInfo(UserInfo.class);
PropertyDescriptor[] proDescrtptors=beanInfo.getPropertyDescriptors();
if(proDescrtptors!=null&&proDescrtptors.length>0){
for(PropertyDescriptor propDesc:proDescrtptors){
if(propDesc.getName().equals(userName)){
Method methodGetUserName=propDesc.getReadMethod();
Object objUserName=methodGetUserName.invoke(userInfo);
System.out.println("get userName:"+objUserName.toString());
break;
}
}
}
}
}
相关文章推荐
- Java内省(Introspector)
- java反射内省机制,Introspector
- 【spring学习前奏】JavaBean内省Introspector以及BeanInfo
- java中的内省(Introspector)
- 黑马程序员_java基础笔记(12)...内省(IntroSpector)
- JAVA Introspector内省用法
- Java:内省(Introspector)
- 深入理解Java:内省(Introspector)
- 【转】JAVA的内省(introspector)与反射(reflection)
- Introspector谈Java内省机制
- JAVA的反射(reflection)与 内省(introspector)
- Java反射与内省(Introspector)
- JAVA的内省机制(introspector)与反射机制(reflection)
- JAVA的内省(introspector)与反射(reflection)
- Java:内省(Introspector)深入理解
- JAVA的内省(introspector)与反射(reflection)
- Java 内省(Introspector)深入理解
- 【转】JAVA的内省(introspector)与反射(reflection)
- 深入理解Java:内省(Introspector)
- 深入理解Java:内省(Introspector)