【问题标题】:How to get LocalDateTime stored as field in firestore in PojoObject? [closed]如何在 PojoObject 的 Firestore 中将 LocalDateTime 存储为字段? [关闭]
【发布时间】:2020-10-30 04:54:54
【问题描述】:

我成功地将 LocalDateTime 字段存储在 firestore 中,但是当我取回这些数据并将其映射到 Pojo 时,它显示出序列化问题。这是我得到的错误--

java.lang.RuntimeException:无法反序列化对象。类 java.time.LocalDateTime 没有定义无参数构造函数。如果您使用 ProGuard, 确保这些构造函数没有被剥离(在字段“orderTime”中找到)

  1. 如何解决?
  2. 有没有更好的方法?

【问题讨论】:

    标签: java android google-cloud-firestore


    【解决方案1】:

    在 Pojo 类中,您需要定义默认(无参数)构造函数。错误提到您没有定义无参数构造函数。

    请参考以下示例。

    
    public class User{
    
    private String id;
    private String name;
    
    //Add this
    public User(){
    }
    
    }
    
    

    这将有助于修复您的错误。

    【讨论】:

    • 我已经有了。只有一个 LocalDateTime 类型的字段会造成问题
    【解决方案2】:
    • 如果框架必须有一个无参数的构造函数,我认为 java.time.LocalDateTime 可能不是你真正想要的,因为这个类是用 final 装饰的,这意味着你不能扩展带有无参数构造函数的类。

    • 您可以尝试的另一种方法是使用类 org.joda.time.LocalDateTime 导入包 org.joda.time,该包从 java.time joda.time 扩展了更多功能,因此它的构造函数没有 arg。

    【讨论】:

      猜你喜欢
      • 2022-12-04
      • 1970-01-01
      • 2020-06-15
      • 2020-12-15
      • 1970-01-01
      • 2022-07-26
      • 1970-01-01
      • 2019-02-09
      • 2017-05-02
      相关资源
      最近更新 更多