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