springframework中的BeanUtils和hutool中的BeanUtil使用的区别
package com.lezu.springboot.test.bean;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import lombok.Data;
import org.springframework.beans.BeanUtils;
import java.util.Date;
/**
* @author LianJiaYu
* @date 2022/8/29 16:05
* Date转Long时间戳
*/
public class Demo1 {
public static void main(String[] args) {
Person p = new Person();
p.setName("张三");
p.setBirthday(new Date());
PersonVo vo = new PersonVo();
//使用org.springframework.beans.BeanUtils进行复制
BeanUtils.copyProperties(p, vo);
System.out.println(vo);
System.out.println(JSON.toJSONString(vo));
/** 打印结果
* PersonVo(name=张三, birthday=1661760658638)
* {"birthday":1661760658638,"name":"张三"}
*/
//*************************分割线*************************
//JSON格式时间戳自动转Date
Person person = JSON.parseObject("{\"birthday\":1661760658638,\"name\":\"张三\"}", Person.class);
System.out.println(person);
/**打印结果
* Person(name=张三, birthday=Mon Aug 29 16:10:58 CST 2022)
*/
//*************************分割线*************************
/** hutool测试版本为5.8.0
* <dependency>
* <groupId>cn.hutool</groupId>
* <artifactId>hutool-all</artifactId>
* <version>5.8.0</version>
* </dependency>
*/
//使用hutool的BeanUtil进行复制
BeanUtil.copyProperties(p, vo);
System.out.println(vo);
System.out.println(JSON.toJSONString(vo));
/** 打印结果
* PersonVo(name=张三, birthday=null)
* {"name":"张三"}
*/
}
}
@Data
class Person {
private String name;
private Date birthday;
}
@Data
class PersonVo {
private String name;
private Long birthday;
public void setBirthday(Date birthday) {
if (birthday != null) {
this.birthday = birthday.getTime();
}
}
}