2

我有一个类,如果在构建器中未指定名称或内容的情况下尝试构建它,我希望它会引发异常。如果我不设置“名称”会发生这种情况,但如果我不设置“东西”则不会。

@Value.Immutable
public abstract class Data {
  public abstract String name();
  public abstract List<String> stuff();
}

有人可以指出我如何强制要求指定列表或使用 Immutables 库将对象添加到列表中吗?

4

1 回答 1

1

您应该按照文档中的说明实施前提条件检查。

对于您的课程,它可能类似于以下内容:

@Value.Check
protected void check() {
    Preconditions.checkState(!stuff().isEmpty(), "At least one stuff must be specified.");
}
于 2018-06-06T08:09:50.780 回答