首页 > 解决方案 > 包含列表的不可变类在没有列表的情况下不会抛出异常

问题描述

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

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

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

标签: javaimmutables-library

解决方案


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

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

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

推荐阅读