Java bean参数的set,一个个的set很麻烦?

举个例子,下面这个bean
注意==@Data注解 =====>>>>> Lombok的
下面的bean仅提供了部分属性,看看就行

@Data
@Document(collection = "xxx")
public class ItemExam implements Serializable {
	/**
	 * 参加考试人员 默认这个班所有学生
	 */
	private ArrayList<UserDto> members;

	/**
	 * 成绩可见性 true false【字符串】
	 */
	private String markVisiblity;

	/**
	 * 试卷可见性 true false 【字符串】
	 */
	private String testAllVisibility;

	/**
	 *  开启作弊 true false【字符串】
	 */
	private String formalExam;
}

如果你不想
Logs logs = new Logs();
logs.setxxxx();
logs.setxxxx();
logs.setxxxx(); 一个个的设置的话

虽然下面这种办法也有点麻烦吧,哈哈
仅供参考,就是使用BeanUtils.populate方法
要求你的bean属性要有对应的set方法哦
封装成工具类了:

public class WebBeanUtils {
	// 泛型
	// 到时候你用什么对象都可以了,所以用了泛型,不局限于某个对象
	public static <T> T copyParamToBean(Map properties, T bean) {
		try {
			// 将所有参数注入到指定对象中去
			// 需要对线改的set方法存在 且名字 要一致才行
			BeanUtils.populate(bean, properties);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return bean;
	}
}
		Map<String, Object> properties = new HashedMap();
		properties.put("testAllVisibility", exam.getTestAllVisibility());
		// 试卷成绩可见性
		properties.put("markVisiblity", exam.getMarkVisiblity());
		// 开启作弊
		properties.put("formalExam", formalExam);
		// 参加考试学生
		ArrayList<UserDto> students = course.getStudents();
		properties.put("members", students);
		// 参考人数
		properties.put("memberSize", students.size())
		// 最后这样子就全部注入进去了
		WebBeanUtils.copyParamToBean(properties, new ItemExam());

一定要有setter方法哦!否则不会成功!
写完帮到你们!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值