@Data
public class User {
private long id;
private String name;
private List addresses;
}
@Data
public class AddressDto {
private String cityCode;
private String cityName;
}
@Data
public class UserDto {
private long id;
private String name;
private List addresses;
}
@Data
public class AddressDto {
private String cityCode;
private String cityName;
}
User user = new User();
user.setId(1);
Address address = new Address();
address.setCityCode("10");
address.setCityName("beijing");
user.setAddresses(Arrays.asList(address));
UserDto userDto = UserCopier.INSTANCE.userToDtoUser(user);
// 拷贝List
List users ...
List list = UserCopier.INSTANCE.userToDtoUser(users);
可以看一下编译后自动生成了 UserCopierImpl 类
public class UserCopierImpl implements UserCopier {
public UserCopierImpl() {
}
public UserDto userToDtoUser(User user) {
if (user == null) {
return null;
} else {
UserDto userDto = new UserDto();
userDto.setId(user.getId());
userDto.setName(user.getName());
userDto.setAddresses(this.addressListToAddressDtoList(user.getAddresses()));
return userDto;
}
}
public List userToDtoUser(List list) {
if (list == null) {
return null;
} else {
List list1 = new ArrayList(list.size());
Iterator var3 = list.iterator();
while(var3.hasNext()) {
User user = (User)var3.next();
list1.add(this.userToDtoUser(user));
}
return list1;
}
}
protected AddressDto addressToAddressDto(Address address) {
if (address == null) {
return null;
} else {
AddressDto addressDto = new AddressDto();
addressDto.setCityCode(address.getCityCode());
addressDto.setCityName(address.getCityName());
return addressDto;
}
}
protected List addressListToAddressDtoList(List list) {
if (list == null) {
return null;
} else {
List list1 = new ArrayList(list.size());
Iterator var3 = list.iterator();
while(var3.hasNext()) {
Address address = (Address)var3.next();
list1.add(this.addressToAddressDto(address));
}
return list1;
}
}
}