`

Introspector.getBeanInfo()方法使用

阅读更多

public static Map convertBean(Object bean) throws IntrospectionException,
  IllegalAccessException, InvocationTargetException {


  Map returnMap = new HashMap();

 

  Class type = bean.getClass(); // 获得对象的名字

 

  BeanInfo beanInfo = Introspector.getBeanInfo(type);
  // 在 Java Bean 上进行内省,了解其所有属性、公开的方法和事件

 

 

  PropertyDescriptor[] propertyDescriptors = beanInfo .getPropertyDescriptors();
  // 获得 beans PropertyDescriptor

 

  for (int i = 0; i < propertyDescriptors.length; i++) {
   PropertyDescriptor descriptor = propertyDescriptors[i];

 

   String propertyName = descriptor.getName();
   // 获得所有对象属性值得名字

 

   if (!propertyName.equals("class")) {
    Method readMethod = descriptor.getReadMethod();
    Object result = readMethod.invoke(bean, new Object[0]);
    if (result != null) {
     returnMap.put(propertyName, result);
    } else {
     returnMap.put(propertyName, "");
    }
   }
  }
  return returnMap;
 }

}

分享到:
评论

相关推荐

    JAVA的内省机制(introspector)与反射机制(reflection).docx

    我们可以通过 Introspector.getBeanInfo() 方法来获取某个 Bean 的 BeanInfo 对象,然后通过 BeanInfo 对象来获取属性的描述器(PropertyDescriptor),最后通过这个属性描述器来获取某个属性对应的 getter/setter ...

    使用betwixt进行xml与java类之间的互转解析--代码

    BeanInfo beanInfo = Introspector.getBeanInfo(Person.class); ``` 然后,我们可以创建一个`XMLIntrospector`实例,用于执行XML到Java对象的解析或Java对象到XML的序列化: ```java XMLIntrospector introspector...

    Spring源码学习十三:IntrospectorCleanupListener解析1

    通过`Introspector.getBeanInfo()`方法,我们可以得到一个`BeanInfo`对象,其中包含了类的属性、方法和事件的详细描述。这对于开发人员来说是一个非常方便的工具,可以用于创建GUI界面或者进行Bean的自动化处理。 ...

    Java 内省introspector相关原理代码解析

    例如,`Introspector.getBeanInfo(Class)` 方法可以获取指定类的BeanInfo,这包含了关于类的属性(PropertyDescriptor)、事件(EventSetDescriptor)和方法(MethodDescriptor)等信息。 在提供的代码示例中,`...

    Java反射中java.beans包学习总结.docx

    可以使用`Introspector.getBeanInfo()`方法获取关于JavaBean的所有信息,包括其属性、事件和方法。 5. **EventSetDescriptor**: 当JavaBean需要支持事件时,`EventSetDescriptor`类表示事件集。它定义了事件的...

    各种对象转成JSON字符串.docx

    它首先创建一个`StringBuilder`,然后获取JavaBean的属性信息(通过`Introspector.getBeanInfo`方法)。接着遍历所有属性,调用`object2json`方法将属性名称和值转换为JSON格式,并添加到`StringBuilder`中。 对于...

    ajax json java 用法 json 将List、Object转换为Json格式字符串

    - 使用 `Introspector.getBeanInfo()` 获取传入对象的所有属性。 - 遍历所有属性,获取属性名和对应的 getter 方法,并将属性名及值转换为 JSON 格式添加到 `json` 中。 - 最后将末尾的逗号替换为 `}` 并返回最终...

    Javabean和map相互转化方法代码示例

    这个方法使用 Java 的反射机制来获取 Map 对象的 key-value 形式,并将其转换为 JavaBean 对象的属性。 三、使用场景 JavaBean 和 Map 相互转换的方法可以在各种场景下使用,例如: * 在导入数据时,将 Map 对象...

    json转Map,转javaBean,javBean和Map转json

    for (PropertyDescriptor pd : Introspector.getBeanInfo(obj.getClass()).getPropertyDescriptors()) { try { map.put(pd.getName(), pd.getReadMethod().invoke(obj)); } catch (Exception e) { e....

    httpreq转对象

    `Introspector.getBeanInfo()`方法用于获取目标对象类的BeanInfo,该BeanInfo包含了类的所有属性的描述信息,即PropertyDescriptor数组。通过遍历这些PropertyDescriptor,可以找到对应的setter方法(writeMethod)...

    Java实现不同的类的属性之间相互赋值

    我们可以使用 `Introspector` 类来获取类的属性信息,并使用 `PropertyDescriptor` 来描述属性的信息。 ```java public static void Copy(Object source, Object dest) throws Exception { // 获取属性 BeanInfo ...

    JavaBean和Map转换封装类的方法

    首先,通过`Introspector.getBeanInfo()`获取JavaBean的属性信息,然后通过反射创建JavaBean的新实例。接着,遍历Map中的所有键值对,根据属性名调用对应的setter方法设置JavaBean的属性值。 2. `map2JavaList`: 这...

    Java中的内省与反射.doc

    这段代码使用了 `java.beans` 包下的 `Introspector` 类来获取对象的属性信息,并通过反射调用getter方法获取属性值。 ##### 3.3 应用场景 内省的一个常见应用场景是在Web框架中,如Struts中的FormBean。通过内省...

    java Map转Object与Object转Map实现代码

    在这个例子中,我们使用了Java的反射API(`Introspector`和`PropertyDescriptor`)来获取对象的所有属性,并调用对应的setter方法设置值。 2. **Object转Map** 与Map转Object相反,Object转Map是将一个对象的属性...

    如何利用反射批量修改java类某一属性的代码详解

    首先,我们需要获取类的所有属性描述符,可以使用 Introspector.getBeanInfo() 方法来获取所有属性描述符。然后,我们可以遍历所有属性描述符,根据需要批量修改的属性名称来找到对应的属性描述符。最后,我们可以...

    java-任何类型转换成json数据格式

    - 通过`Introspector.getBeanInfo()`方法获取Java Bean的属性描述信息。 - 遍历所有属性并调用getter方法获取值,然后将键值对转换为JSON对象。 5. **异常处理**: - 在转换过程中可能会抛出各种异常,如`...

    JDK7新特性

    BeanInfo beanInfo = Introspector.getBeanInfo(pt1.getClass()); PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors(); for (PropertyDescriptor pd : pds) { System.out.println(pd.getName()); } ```...

    java深度复制源代码

    - **反射机制**:该工具类大量使用了Java反射API(如`Introspector.getBeanInfo()`、`PropertyDescriptor`等)来获取和设置JavaBean的属性。 - **泛型**:使用了泛型`&lt;T&gt;`,使得该工具类可以应用于任意类型的...

    java实现Object和Map之间的转换3种方式

    BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()); PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); for (PropertyDescriptor property : propertyDescriptors) {...

    jdk1.5/1.6/1.7新特性

    BeanInfo beanInfo = Introspector.getBeanInfo(pt1.getClass()); PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors(); Object retVal = null; for (PropertyDescriptor pd : pds) { Method ...

Global site tag (gtag.js) - Google Analytics