如何解决如何在具有 final 字段的类中避免由于 lombok @Data 注释导致的 NPE?
我收到由以下原因引起的空指针异常:
Caused by: java.lang.UnsupportedOperationException: No accessor to set property private final java.lang.String
经过一些研究,我意识到这是因为我的类使用 @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();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。