【发布时间】:2022-12-22 22:10:48
【问题描述】:
给定以下对象
@Getter
@Builder
@RequiredArgsConstructor
class Example {
private final String maybeA;
private final String maybeB;
}
是否可以在必须存在这些字段之一的地方添加约束?
所以我们可以有 A 和 B,A 或 B,但不能有 A 和 B。
【问题讨论】:
-
两者都可以存在吗?或者必须确切地一个是非空的?如果是后者,您可能正在为这两种情况寻找一个具有两个子类的密封类。如果两者都可以存在但至少有一个必须存在,那么我认为 Lombok 无法帮助您,您只需要在构造函数中进行显式检查。
-
如果我用另一种类型系统的语言解决了这个问题,我会确定满足您要求的类型,并且会使用这种类型的一个字段而不是两个
String maybe_。我不确定这种方法在 Java 中是否可行 -
@SilvioMayolo 是的,两者都可以存在。很遗憾,这可能是不可能的。但谢谢你的回应
标签: java nullable lombok builder