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;
}
}
相关推荐
我们可以通过 Introspector.getBeanInfo() 方法来获取某个 Bean 的 BeanInfo 对象,然后通过 BeanInfo 对象来获取属性的描述器(PropertyDescriptor),最后通过这个属性描述器来获取某个属性对应的 getter/setter ...
BeanInfo beanInfo = Introspector.getBeanInfo(Person.class); ``` 然后,我们可以创建一个`XMLIntrospector`实例,用于执行XML到Java对象的解析或Java对象到XML的序列化: ```java XMLIntrospector introspector...
通过`Introspector.getBeanInfo()`方法,我们可以得到一个`BeanInfo`对象,其中包含了类的属性、方法和事件的详细描述。这对于开发人员来说是一个非常方便的工具,可以用于创建GUI界面或者进行Bean的自动化处理。 ...
例如,`Introspector.getBeanInfo(Class)` 方法可以获取指定类的BeanInfo,这包含了关于类的属性(PropertyDescriptor)、事件(EventSetDescriptor)和方法(MethodDescriptor)等信息。 在提供的代码示例中,`...
可以使用`Introspector.getBeanInfo()`方法获取关于JavaBean的所有信息,包括其属性、事件和方法。 5. **EventSetDescriptor**: 当JavaBean需要支持事件时,`EventSetDescriptor`类表示事件集。它定义了事件的...
它首先创建一个`StringBuilder`,然后获取JavaBean的属性信息(通过`Introspector.getBeanInfo`方法)。接着遍历所有属性,调用`object2json`方法将属性名称和值转换为JSON格式,并添加到`StringBuilder`中。 对于...
- 使用 `Introspector.getBeanInfo()` 获取传入对象的所有属性。 - 遍历所有属性,获取属性名和对应的 getter 方法,并将属性名及值转换为 JSON 格式添加到 `json` 中。 - 最后将末尾的逗号替换为 `}` 并返回最终...
这个方法使用 Java 的反射机制来获取 Map 对象的 key-value 形式,并将其转换为 JavaBean 对象的属性。 三、使用场景 JavaBean 和 Map 相互转换的方法可以在各种场景下使用,例如: * 在导入数据时,将 Map 对象...
for (PropertyDescriptor pd : Introspector.getBeanInfo(obj.getClass()).getPropertyDescriptors()) { try { map.put(pd.getName(), pd.getReadMethod().invoke(obj)); } catch (Exception e) { e....
`Introspector.getBeanInfo()`方法用于获取目标对象类的BeanInfo,该BeanInfo包含了类的所有属性的描述信息,即PropertyDescriptor数组。通过遍历这些PropertyDescriptor,可以找到对应的setter方法(writeMethod)...
我们可以使用 `Introspector` 类来获取类的属性信息,并使用 `PropertyDescriptor` 来描述属性的信息。 ```java public static void Copy(Object source, Object dest) throws Exception { // 获取属性 BeanInfo ...
首先,通过`Introspector.getBeanInfo()`获取JavaBean的属性信息,然后通过反射创建JavaBean的新实例。接着,遍历Map中的所有键值对,根据属性名调用对应的setter方法设置JavaBean的属性值。 2. `map2JavaList`: 这...
这段代码使用了 `java.beans` 包下的 `Introspector` 类来获取对象的属性信息,并通过反射调用getter方法获取属性值。 ##### 3.3 应用场景 内省的一个常见应用场景是在Web框架中,如Struts中的FormBean。通过内省...
在这个例子中,我们使用了Java的反射API(`Introspector`和`PropertyDescriptor`)来获取对象的所有属性,并调用对应的setter方法设置值。 2. **Object转Map** 与Map转Object相反,Object转Map是将一个对象的属性...
首先,我们需要获取类的所有属性描述符,可以使用 Introspector.getBeanInfo() 方法来获取所有属性描述符。然后,我们可以遍历所有属性描述符,根据需要批量修改的属性名称来找到对应的属性描述符。最后,我们可以...
- 通过`Introspector.getBeanInfo()`方法获取Java Bean的属性描述信息。 - 遍历所有属性并调用getter方法获取值,然后将键值对转换为JSON对象。 5. **异常处理**: - 在转换过程中可能会抛出各种异常,如`...
BeanInfo beanInfo = Introspector.getBeanInfo(pt1.getClass()); PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors(); for (PropertyDescriptor pd : pds) { System.out.println(pd.getName()); } ```...
- **反射机制**:该工具类大量使用了Java反射API(如`Introspector.getBeanInfo()`、`PropertyDescriptor`等)来获取和设置JavaBean的属性。 - **泛型**:使用了泛型`<T>`,使得该工具类可以应用于任意类型的...
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()); PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); for (PropertyDescriptor property : propertyDescriptors) {...
BeanInfo beanInfo = Introspector.getBeanInfo(pt1.getClass()); PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors(); Object retVal = null; for (PropertyDescriptor pd : pds) { Method ...