package beanutil;
import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
/**
* 描述:bean工具类
* @author duxing
* @version 0.1
*/
public class BeanUtil {
/**
* 描述:将一个map对象转化为bean
* @param map
* @param clss
* @return object
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public static <K, V> Object transMapToBean(Map<K, V> map, Class clss) {
Object object = null;
try {
object = clss.newInstance();
for (Map.Entry<K, V> entry : map.entrySet()) {
Method methodType = clss.getMethod("get" + entry.getKey());
Method method = clss.getMethod("set" + entry.getKey(),
methodType.getReturnType());
method.invoke(object, entry.getValue());
}
} catch (Exception e) {
e.printStackTrace();
}
return object;
}
/**
* 描述:将一个map对象转化为bean
* @param params
* @param clss
*/
public static <K, V> void transMapToBean(Map<K, V> map, Object obj) {
try {
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors = beanInfo
.getPropertyDescriptors();
for (PropertyDescriptor property : propertyDescriptors) {
String key = property.getName();
if (map.containsKey(key)) {
Object value = map.get(key);
// 得到property对应的setter方法
Method setter = property.getWriteMethod();
setter.invoke(obj, value);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 描述:利用Introspector和PropertyDescriptor 将Bean --> Map
* @param params
* @param clss
* @return map
*/
public static Map<String, Object> transBeanToMap(Object obj) {
if (obj == null) {
return null;
}
Map<String, Object> map = new HashMap<String, Object>();
try {
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors = beanInfo
.getPropertyDescriptors();
for (PropertyDescriptor property : propertyDescriptors) {
String key = property.getName();
// 过滤class属性
if (!key.equals("class")) {
// 得到property对应的getter方法
Method getter = property.getReadMethod();
Object value = getter.invoke(obj);
map.put(key, value);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
}
相关推荐
BeanUtil框架是一个在Java开发中常用的工具库,主要用于对象属性的获取、设置、拷贝以及类型转换等操作。它的设计目标是简化Java Bean的操作,提高代码的可读性和可维护性。这个“BeanUtil框架完整包”包含了...
BeanUtil是一个常用的Java工具库,主要用于对象与数据库之间的数据转换,简化了数据库操作中的数据绑定过程。这个工具库使得开发者可以更加便捷地处理Java Bean和SQL查询结果之间的映射,提高了开发效率。在Java开发...
《BeanUtil_Jar包:JavaBean操作神器》 在Java编程世界中,BeanUtils库扮演着重要的角色,它为开发者提供了便捷的操作JavaBean的工具类。这个“BeanUtil_Jar包”正是这样一个实用的工具集,它包含了丰富的功能,...
BEANutil工具类,可获取生日,简单的几行代码,给需要的你。BEANutil工具类,可获取生日,简单的几行代码,给需要的你。
《BeanUtil:Apache提供的高效Java反射工具包》 在Java编程中,BeanUtil是一个非常重要的工具包,尤其在处理对象的属性操作时,它扮演着不可或缺的角色。BeanUtil源自著名的开源组织Apache,是其 Commons BeanUtils...
BeanUtil属性拷贝工具类,支持基本的javabean属性拷贝,通过java反射和泛型编程实现了list属性拷贝
BeanUtil 主要用于实体Bean和Map之间的互转,使用方便,是一个不可多得的工具类哦
《BeanUtil1.8源码与jar包解析》 BeanUtil是Apache Commons项目中的一个工具类库,主要用于处理Java Bean的操作,提供了一系列便捷的方法来简化Java Bean的属性操作。在这个"BeanUtil1.8 SRC 源码和 jar包"中,包含...
BeanUtil.java
本文将深入探讨BeanUtil工具类的工作原理以及如何在Servlet中使用它。 首先,让我们理解一下JavaBean的概念。JavaBean是一种遵循特定规范的Java类,主要用于封装数据。它通常具有公有构造器、公有getter和setter...
BeanUtil需要的jar包和源码文件,commons-beanutils-1.8.0.jar,commons-beanutils-1.8.0-javadoc.jar,commons-beanutils-1.8.0-sources.jar,commons-beanutils-bean-collections-1.8.0.jar,commons-beanutils-...
在给定的标题"BeanUtil_MYSQL_mybaatis_"中,我们可以推断这是一个关于MyBatis和MySQL结合使用的工具类,可能用于自动根据实体Bean生成SQL语句。描述进一步明确了这个工具的功能,包括自动生成创建表的DDL(Data ...
beanutil的的jar包 大家顶啦
修改内容: 1.org.apache.commons.beanutils.converters包下增加了UtilDateConverter类 2.修改了org.apache.commons.beanutils.converters包下的StringConverter类 3.ConvertUtilsBean类中的public void ...
这个"commons-beanutil-1.7.0-src"压缩包包含了BeanUtils库的源代码,版本号为1.7.0,是开发者理解和自定义此库功能的重要资源。以下是关于Apache Commons BeanUtils库及其1.7.0版本的一些关键知识点: 1. **...
BeanUtil通常指的是Apache Commons BeanUtils库,这是一个实用工具类库,提供了各种方法来操作Java Bean,如属性的复制、类型转换等。在JSP项目中,BeanUtil可以帮助我们方便地处理对象之间的属性赋值,简化对象间的...
"beanutil的jar包打包" 指的是将Apache Commons BeanUtils相关的类库打包成一个或多个JAR(Java Archive)文件。BeanUtils是Java开发中常用的工具包,它提供了对Java Bean操作的各种便利方法,如属性的设置与获取,...
common-beanutil的源代码 1.8.1
beanutil_1.8.3_API
【标题】中的"dom4j jstl beanUtil log4j等jar包"涉及了四个重要的Java库,它们在开发Java应用程序,特别是Web应用时非常常见。下面将逐一详细介绍这些库的功能、用途以及如何在项目中使用它们。 1. **DOM4J**:这...