【发布时间】:2019-07-01 18:24:40
【问题描述】:
我有一个 POJO 类如下:
@Value
@Builder
public class XYZ {
@NonNull
private final String a;
@NonNull
private final String b;
@NonNull
private final State state;
public enum State {
STARTED
}
}
当我尝试从我的 tst/ 文件夹创建 XYZ 类的对象时,它失败并出现无法从外部包访问构造函数的错误,但是当我在该 POJO 中使用 @RequiredArgsConstructor 时,它开始正常工作并且没有t 显示错误。实际的错误是这样的:
错误:XYZ(String,String,State) 在 XYZ 中不公开;不可能是 从外部包访问
所以,我想知道@AllArgsConstructor(由@Value 提供)和@RequiredArgsConstructor 之间有什么区别,因此我看到了这个问题。
【问题讨论】:
-
我强烈怀疑您的
@Builder导致构造函数被隐藏。 -
感谢您的回答。是的,就是因为这个。但这是为什么呢?