spring-两个对象之间的属性拷贝工具
来源:互联网 发布:西门子s7一200编程视频 编辑:程序博客网 时间:2024/05/16 01:51
import java.util.Arrays;
import java.util.List;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
public class PropertiesCopyUtil {
/**
* 属性复制
*
* @param source
* @param clazz
* @return
*/
public static <T> T copyProperties(Object source, Class<T> clazz) {
if (source == null) {
return null;
}
try {
T target = BeanUtils.instantiate(clazz);
BeanUtils.copyProperties(source, target);
return target;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 忽略部分属性
*
* @param source
* @param clazz
* @param ignoreProperties
* @return
*/
public static <T> T copyPropertiesIgnore(Object source, Class<T> clazz,
String... ignoreProperties) {
if (source == null) {
return null;
}
try {
T target = BeanUtils.instantiate(clazz);
BeanUtils.copyProperties(source, target, ignoreProperties);
return target;
} catch (Exception e) {
}
return null;
}
/**
* 复制部分属性
*
* @param source
* @param clazz
* @param specificProperties
* @return
*/
public static <T> T copyPropertiesSpecific(Object source, Class<T> clazz,
String... specificProperties) {
if (source == null) {
return null;
}
try {
T target = BeanUtils.instantiate(clazz);
if (specificProperties == null) {
return target;
}
List<String> specificList = Arrays.asList(specificProperties);
copySpecificProperties(source, target, specificList);
return target;
} catch (Exception e) {
}
return null;
}
private static void copySpecificProperties(final Object source,
final Object target, final Iterable<String> properties) {
final BeanWrapper src = new BeanWrapperImpl(source);
final BeanWrapper trg = new BeanWrapperImpl(target);
for (final String propertyName : properties) {
trg.setPropertyValue(propertyName,
src.getPropertyValue(propertyName));
}
}
}
import java.util.List;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
public class PropertiesCopyUtil {
/**
* 属性复制
*
* @param source
* @param clazz
* @return
*/
public static <T> T copyProperties(Object source, Class<T> clazz) {
if (source == null) {
return null;
}
try {
T target = BeanUtils.instantiate(clazz);
BeanUtils.copyProperties(source, target);
return target;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 忽略部分属性
*
* @param source
* @param clazz
* @param ignoreProperties
* @return
*/
public static <T> T copyPropertiesIgnore(Object source, Class<T> clazz,
String... ignoreProperties) {
if (source == null) {
return null;
}
try {
T target = BeanUtils.instantiate(clazz);
BeanUtils.copyProperties(source, target, ignoreProperties);
return target;
} catch (Exception e) {
}
return null;
}
/**
* 复制部分属性
*
* @param source
* @param clazz
* @param specificProperties
* @return
*/
public static <T> T copyPropertiesSpecific(Object source, Class<T> clazz,
String... specificProperties) {
if (source == null) {
return null;
}
try {
T target = BeanUtils.instantiate(clazz);
if (specificProperties == null) {
return target;
}
List<String> specificList = Arrays.asList(specificProperties);
copySpecificProperties(source, target, specificList);
return target;
} catch (Exception e) {
}
return null;
}
private static void copySpecificProperties(final Object source,
final Object target, final Iterable<String> properties) {
final BeanWrapper src = new BeanWrapperImpl(source);
final BeanWrapper trg = new BeanWrapperImpl(target);
for (final String propertyName : properties) {
trg.setPropertyValue(propertyName,
src.getPropertyValue(propertyName));
}
}
}
0 0
- spring-两个对象之间的属性拷贝工具
- 两个具有相同属性的对象之间属性的拷贝
- BeanUtils拷贝两个对象的相同属性
- flex对象之间属性拷贝
- 使用Java对两个对象的属性进行拷贝
- 通过反射完成不同对象之间的属性拷贝
- 反射实现两个对象属性名不同之间的映射
- 两个ubuntu系统之间的文件拷贝
- MySQL两个数据库之间数据的拷贝
- Java 对象之间的比较,判断两个对象的某一个属性相等,则对象相等
- java不同类型对象之间的拷贝
- Github 开源:高效好用的对象间属性拷贝工具 升讯威 Mapper:( Sheng.Mapper)
- C#利用反射实现两个类的对象之间相同属性的值的复制
- 关于不同对象且属性名称也不一样的两个对象之间的复制以及动态对象生成
- 两个集群之间拷贝数据
- Navicate 两个数据库之间拷贝
- 使用反射+缓存+委托,实现一个不同对象之间同名同类型属性值的快速拷贝
- 使用反射+缓存+委托,实现一个不同对象之间同名同类型属性值的快速拷贝
- IP
- 浅析Redis复制
- helloWord Android(ios 开发学习安卓)
- 强悍的 Linux —— tar.xz 文件的解压
- android 跳转到当前应用的详情页面
- spring-两个对象之间的属性拷贝工具
- 标准c 三字母词
- 使用git gui新建coding项目
- 斯坦福机器学习公开课笔记
- windows 用户登录和注销监控|windows session 状态改变监控
- IOS indexPathsForVisibleItems原理
- Java读取Properties文件的七种方法
- tomcat端口配置文件解析
- 用DeflateStream和GZipStream压缩数据