包含列表的不可变类在没有列表的情况下不会抛出异常

时间:2018-05-10 14:29:59

标签: java immutables-library

如果在构建器中未指定名称或内容的情况下尝试构建,我希望引发异常。如果我没有设置" name"会发生这种情况,但如果我没有设置" stuff"则会发生这种情况。

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

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

1 个答案:

答案 0 :(得分:1)

您应该将前提条件检查实施为described in the documentation

对于您的课程,它可能如下所示:

@Value.Check
protected void check() {
    Preconditions.checkState(!stuff().isEmpty(), "At least one stuff must be specified.");
}