注意:这里有几个人引用的解决方案对我的问题不起作用......
我有一个java.sql.Timestamp字段,我想在我的getter中格式化为String。我在课程开始时使用了Lombok @Data。但是当我用自己的getter覆盖Lombok的getter(格式化Timestamp)时,该字段始终为null。我没有在文档中看到任何解释此行为的内容。
这段代码给出了resolveDate作为时间戳:
@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);
}
}
答案 0 :(得分:1)
你的代码确实存在一些与Lombok无关的问题。以下部分内容如下:
null
覆盖。根据评论中的建议,您应该创建一个SSCCE。我经常这样做,大多数时候,我取消了我的问题,因为它引导我找到解决方案。
请注意,写一个getter返回一个无法使用setter的类型是一个非常糟糕的主意。