![](/img/trans.png)
[英]lombok @Data complains “lombok needs a default constructor in the base class”, when abstract class having final field
[英]How to avoid NPE due to lombok @Data annotation in a class with final field?
我收到 null 指針異常,原因是:
Caused by: java.lang.UnsupportedOperationException: No accessor to set property private final java.lang.String
經過一番研究,我意識到它正在發生,因為我的 class 帶有 @Data 注釋,並且我在其中定義了一個 final 字段。
@Data
@Builder
public class ClassA {
private String id;
private final String name = "Name A";
}
我在這里創建 ClassA 的對象:
public ClassA converter(InputData input) {
if (input == null || input.getIdValue() == null) {
return null;
}
return ClassA.builder()
.id(input.getIdValue())
.build();
}
關於如何處理這個問題的任何建議?
下面的方法解決了這個問題,並且從業務角度來看也更有意義,這里不討論。
@Data
@Builder
public class ClassA {
private String id;
private String name;
}
public ClassA converter(InputData input) {
private static final String NAME = "Name";
if (input == null || input.getIdValue() == null) {
return null;
}
return ClassA.builder()
.id(input.getIdValue())
.name(NAME)
.build();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.