Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t覆盖龙目吸气剂_Java_Lombok - Fatal编程技术网

Java Can';t覆盖龙目吸气剂

Java Can';t覆盖龙目吸气剂,java,lombok,Java,Lombok,注意:这里有几个人引用的解决方案不适用于我的问题 我有一个java.sql.Timestamp字段,我想在getter中将其格式化为字符串。我在课程开始时使用Lombok@Data。但是,当我用自己的getter覆盖Lombok的getter(格式化时间戳)时,字段总是空的。我在文档中没有看到任何东西来解释这种行为 这段代码将结算日期作为时间戳提供给我: @Data public class MyObject { public Timestamp settlementDate; } 这段代

注意:这里有几个人引用的解决方案不适用于我的问题

我有一个java.sql.Timestamp字段,我想在getter中将其格式化为字符串。我在课程开始时使用Lombok@Data。但是,当我用自己的getter覆盖Lombok的getter(格式化时间戳)时,字段总是空的。我在文档中没有看到任何东西来解释这种行为

这段代码将结算日期作为时间戳提供给我:

@Data
public class MyObject {
  public Timestamp settlementDate;
}
这段代码给了我一个NPE,因为settlementDate为null。嗯,我突然想到。。。可能是因为getter的返回类型与成员类型不同吗

@Data
public class MyObject {
  public Timestamp settlementDate;

  String getSettlementDate() {
    return new SimpleDateFormat("yyyy-MM-dd").format(tradeDate);
  }
}

您的代码肯定存在一些与Lombok无关的问题。以下一些观点成立:

  • 在访问之前未设置字段
  • 确实如此,但稍后会被
    null
    覆盖
  • 您正在另一个线程上访问它,而没有可见性保证
按照评论中的建议,您应该创建一个。我通常会这样做,而且大多数时候,我会取消我的问题,因为它会引导我找到解决方案



请注意,编写getter返回setter无法使用的类型是一个非常糟糕的主意。

看看这个答案如何?我看到了,但不确定它是否适用于我。。。不过我会试试看。你所需要的可能都是重复的-写一行代码
@Getter(AccessLevel.NONE)private Timestamp settlementDate如果你看到了这个问题,为什么不在提问之前尝试一下?谢谢。我用不同的名称创建了一个getter,现在它可以工作了。@user1660256这很奇怪。。。。当然,每当你写自己的getter时,lombok就跳过了这一代人。