java属性赋值_Java对象之间的属性赋值

本文介绍了如何使用Spring的BeanUtils.copyProperties方法实现对象属性的复制,并展示了如何将List转换为不同类型的集合实例,涉及User、Cust、Student类的实例化与赋值操作。
摘要由CSDN通过智能技术生成

对象之间的属性赋值

主要通过org.springframework.beans.BeanUtils.copyProperties方法进行对象之间的属性赋值。

赋值前提 -- 两个对象要赋值的属性名需要保持一致

对象赋值

# 将source对象赋值给target对象

BeanUtils.copyProperties(source, target);

List之间的对象赋值

/**

* @param input 输入集合

* @param clazz 输出集合类型

* @param 输入集合类型

* @param 输出集合类型

* @return 返回集合

*/

public static List convertListToList(List input, Class clazz) {

List output = Lists.newArrayList();

if (CollectionUtils.isNotEmpty(input)) {

for (E source : input) {

T target = BeanUtils.instantiate(clazz);

BeanUtils.copyProperties(source, target);

output.add(target);

}

}

return output;

}

示例

有以下三个类,User、Cust、Student:

@Data

public class User {

private String name;

private String password;

private String email;

}

@Data

public class Cust {

private String name;

private String password;

private String email;

private String phone;

}

@Data

public class Student {

private String name;

private String password;

}

工具类:

import com.google.common.collect.Lists;

import org.apache.commons.collections.CollectionUtils;

import org.springframework.beans.BeanUtils;

import java.util.List;

/**

* @Description: 对象之间进行赋值

* @Date: 2020/9/25 9:55

*/

public class AssignmentObject {

/**

* 对象属性拷贝

* 将源对象的属性拷贝到目标对象

* @param source 源对象

* @param target 目标对象

*/

public static void copyProperties(Object source, Object target) {

BeanUtils.copyProperties(source, target);

}

/**

* @param input 输入集合

* @param clazz 输出集合类型

* @param 输入集合类型

* @param 输出集合类型

* @return 返回集合

*/

public static List convertListToList(List input, Class clazz) {

List output = Lists.newArrayList();

if (CollectionUtils.isNotEmpty(input)) {

for (E source : input) {

T target = BeanUtils.instantiate(clazz);

BeanUtils.copyProperties(source, target);

output.add(target);

}

}

return output;

}

}

测试类:分别测试对象之间的属性赋值与List之间的属性赋值

public class Demo {

public static void main(String[] args) {

User user = new User();

user.setName("admin");

user.setPassword("admin");

user.setEmail("123@qq.com");

System.out.println("user:" + user);

// 将user的属性分别赋给cust和student

Cust cust = new Cust();

AssignmentObject.copyProperties(user, cust);

System.out.println("cust:" + cust);

Student student = new Student();

AssignmentObject.copyProperties(user, student);

System.out.println("student:" + student);

User user1 = new User();

user1.setName("demo");

user1.setPassword("demo");

user1.setEmail("demo@qq.com");

System.out.println("user1:" + user);

// 将users赋值给List和List

List users = new ArrayList<>();

users.add(user);

users.add(user1);

System.out.println("users:" + users);

List custs = AssignmentObject.convertListToList(users, Cust.class);

System.out.println("custs:" + custs);

List students = AssignmentObject.convertListToList(users, Student.class);

System.out.println("students:" + students);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值