封装工具类
package com.xiaowei.utlis;
import org.springframework.beans.BeanUtils;
import java.util.List;
import java.util.stream.Collectors;
public class BeanCopyUtils {
private BeanCopyUtils() {
}
/**
* copy单个的Bean
* @param source 需要copy的数据
* @param clazz 目标数据的字节码
* @return
* @param <O>
* @param <V>
*/
public static <O,V> V copyBean(O source,Class<V> clazz){
V result=null;
try{
result=clazz.newInstance();
BeanUtils.copyProperties(source,result);
}catch (Exception e){
e.printStackTrace();
}
return result;
}
/**
* copy列表类型的数据
* @param list 需要copy的列表
* @param clazz 目标数据的字节码
* @return
* @param <O>
* @param <V>
*/
public static <O,V> List<V> copyBeanList(List<O> list,Class<V> clazz){
return list.stream()
.map(p->copyBean(p,clazz))
.collect(Collectors.toList());
}
}
创建单元测试类调用测试
@SpringBootTest
public class myTest {
@Test
void test1(){
User user=new User();
user.setAccount("aaa");
user.setPassword("bbb");
UserDto userDto = BeanCopyUtils.copyBean(user, UserDto.class);
System.out.println(user);
System.out.println(userDto);
}
@Test
void test(){
List<User>list=new ArrayList<>();
for (int i = 0; i < 5; i++) {
User user=new User();
user.setAccount("aaa"+i);
user.setPassword("bbb"+i);
list.add(user);
}
List<UserDto> userDtos = BeanCopyUtils.copyBeanList(list, UserDto.class);
System.out.println(list);
System.out.println(userDtos);
}
}
##输出结果
第一个方法的输出为
User(id=null, account=aaa, password=bbb, sex=null, nickname=null, createTime=null)
UserDto(account=aaa, password=bbb)
第二个测试方法的输出为
[User(id=null, account=aaa0, password=bbb0, sex=null, nickname=null, createTime=null), User(id=null, account=aaa1, password=bbb1, sex=null, nickname=null, createTime=null), User(id=null, account=aaa2, password=bbb2, sex=null, nickname=null, createTime=null), User(id=null, account=aaa3, password=bbb3, sex=null, nickname=null, createTime=null), User(id=null, account=aaa4, password=bbb4, sex=null, nickname=null, createTime=null)]
[UserDto(account=aaa0, password=bbb0), UserDto(account=aaa1, password=bbb1), UserDto(account=aaa2, password=bbb2), UserDto(account=aaa3, password=bbb3), UserDto(account=aaa4, password=bbb4)]