用另一个列表扩展ImmutableList.of()

时间:2019-04-03 12:01:01

标签: java guava immutablelist

我想简化与ImmutableList.of()功能相关的现有代码

我曾经尝试通过消除“ new ...”构造函数来优化第二个List的创建,但是我当然不能通过调用.add();来扩展不可变列表。

当前代码:

static final ImmutableList<ProductCodeEnum> PRODUCTS = ImmutableList.of(ProductCodeEnum.A, ProductCodeEnum.B, ProductCodeEnum.C);


static final ImmutableList<ProductCodeEnum> PRODUCTS_EXTENDED_LIST = new ImmutableList.Builder<ProductCodeEnum>().addAll(PRODUCTS)
.add(ProductCodeEnum.D)
.add(ProductCodeEnum.E)
.build();

期望的代码,例如:

static final ImmutableList<ProductCodeEnum> PRODUCTS = ImmutableList.of(ProductCodeEnum.A, ProductCodeEnum.B, ProductCodeEnum.C);


static final ImmutableList<ProductCodeEnum> PRODUCTS_EXTENDED = PRODUCTS + ImmutableList.of(ProductCodeEnum.D, ProductCodeEnum.E);

1 个答案:

答案 0 :(得分:6)

我认为您使用Guava ImmutableList吗?

在这种情况下,您的代码将如下所示:

static final ImmutableList<ProductCodeEnum> PRODUCTS = ImmutableList.of(ProductCodeEnum.A, ProductCodeEnum.B, ProductCodeEnum.C);

static final ImmutableList<ProductCodeEnum> PRODUCTS_EXTENDED = ImmutableList.builder().addAll(PRODUCTS).add(ProductCodeEnum.D, ProductCodeEnum.E).build();