首页 > 编程语言 >BeanUtil复制时,两对象中数据类型不一致导致的问题Can not set java.time.LocalDateTime field to java.lang.Long

BeanUtil复制时,两对象中数据类型不一致导致的问题Can not set java.time.LocalDateTime field to java.lang.Long

时间:2024-07-05 10:30:31浏览次数:15  
标签:lang java 数据类型 private aVo Long LocalDateTime bVo

@Data
public class AVo {

    private Long endTime;

    private String name;

    private String id;
}

  

@Data
public class ABVo {

    private LocalDateTime endTime;

    private String name;

    private String id;
}

  

AVo aVo = new AVo();
        ABVo bVo = new ABVo();
        aVo.setEndTime(1720141535793L);
        aVo.setName("李逵");
        aVo.setId("sdd");
        Long sourceEndTime = aVo.getEndTime();
        LocalDateTime targetEndTime = sourceEndTime != null ? LocalDateTime.ofInstant(Instant.ofEpochMilli(sourceEndTime), ZoneId.systemDefault()) : null;
        bVo.setEndTime(targetEndTime);
        //不好使,endTime类型不一致,直接导致java.lang.IllegalArgumentException: Can not set java.time.LocalDateTime field com.ctfo.platform.devplatformserver.
// service.impl.ABVo.endTime to java.lang.Long ,生产上导致了OOM 
        // BeanUtil.copyPropertiesByField(aVo, bVo); 

// 此处为核心代码
        CopyOptions copyOptions = CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true);
        BeanUtil.copyProperties(aVo, bVo,copyOptions);
System.out.println(bVo.getEndTime()); System.out.println(bVo.getName());

  

标签:lang,java,数据类型,private,aVo,Long,LocalDateTime,bVo
From: https://www.cnblogs.com/GranceWang2014/p/18285281

相关文章

  • 一些java中记忆的问题
    什么是封装封装是将对象的属性和方法(或称为成员)结合成一个独立的单元,隐藏对象的属性和实现细节,仅对外公开接口(方法)与对象进行交互。链表数据结构链表是一种常见的数据结构,它由一系列节点(Node)组成,每个节点包含数据和一个或多个指向其他节点的引用(即指针)。与数组不同,链表中......
  • Java程序基础
    类名要求:类名必须以英文字母开头,后接字母,数字和下划线的组合习惯以大写字母开头要注意遵守命名习惯,好的类命名:HelloNoteBookVRPlayer不好的类命名:helloGood123Note_Book_World注意到public是访问修饰符,表示该class是公开的。不写public,也能正确编译,但是这个类......
  • Java_MyBatis框架:MyBatis框架
    MyBatis的执行流程先加载配置文件再通过SqlSessionFactoryBuilder创建SqlSessionFactory对象获取SqlSession生成代理对象执行Excutor匹配执行SQL语句MyBatis的一级缓存和二级缓存一级缓存:也叫SqlSession级缓存,无需手动开启,可直接使用,为每个SqlSession单独分配的缓存空间,......
  • Java_多线程:线程池
    1、线程池优点:降低资源消耗:通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度:当任务到达时,任务可以不需要等到线程创建就能立即执行。提高线程的可管理性:线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一......
  • 基于Java+SpringBoot+Vue的学生宿舍管理系统的设计与开发(源码+lw+部署文档+讲解等)
    文章目录前言项目背景介绍技术栈后端框架SpringBoot前端框架Vue数据库MySQL(MyStructuredQueryLanguage)具体实现截图详细视频演示系统测试系统测试目的系统功能测试系统测试结论代码参考数据库参考源码获取前言......
  • 什么是构造函数?Java 中构造函数的重载如何实现?
    构造函数,就像是建筑房屋时的奠基仪式,是Java类中一个特殊的方法,主要用于初始化新创建的对象。每当创建一个类的新实例时,构造函数就会自动调用,负责为这个新对象分配内存,并对其进行必要的设置,确保对象处于可用状态。它有着与类同名的特殊身份,没有返回类型,甚至连void也不需要声明......
  • 阿里云OSS存储--java
    在yml文件配置属性,使用@Value进行注入@ComponentpublicclassAliOSSUtils{//外部属性注入@Value("${aliyun.oss.endpoint}")Stringendpoint;//@Value("${aliyun.oss.accessKeyId}")@Value("${aliyun.oss.accessKeySecret}")......
  • Java----String类
    publicintlength()返回此字符串的长度。publicbooleanequals(Strings)比较两个字符串内容是否相同、区分大小写publicbooleanequalsIgnoreCase(StringanotherString)将此字符串与指定对象进行比较,忽略大小写。publiccharcharAt(intindex)返回指定索引......
  • C语言数据类型和变量(三)
    目录1.赋值操作符=1)连续赋值2)复合赋值符2.单目操作符:++、--、+(正号)、-(负号)1)++和--2)+和-3.强制类型转换4.printf()函数1)基本语法 2) 占位符3)占位符列举4)输出格式5.scanf()函数1)基本用法2)scanf的返回值3)占位符4)赋值忽略符*1.赋值操作符=在变量......
  • Java 有什么工具可以快速将CSV 存入关系型数据库
    在Java中,有多种工具和库可以快速将CSV文件的数据导入到数据库中。以下是几种常用的方法和工具:1.使用OpenCSV和JDBCOpenCSV是一个非常流行的库,可以轻松读取和写入CSV文件。结合JDBC,可以将CSV文件的数据快速存储到数据库中。示例代码首先,添加OpenCSV库的依赖(假设使用Maven):<dep......