我有一个Map<ProcessInfoEnum, String>
作为参数的构造函数。所以我NO_OPERATION
用空的不可变映射初始化变量,如下所示。
public static final Processor NO_OPERATION = new Processor(ImmutableMap.<ProcessInfoEnum, String>of());
private final Map<ProcessInfoEnum, String> values;
public Processor(Map<ProcessInfoEnum, String> values) {
this.values = values;
}
现在,由于一些设计更改,我已将构造函数更改EnumMap
为如下所示使用:
public Processor(EnumMap<ProcessInfoEnum, String> values) {
this.values = values;
}
现在我如何编写相同的等效行,NO_OPERATION
但是ImmutableEnumMap
它可以初始化空的不可变枚举映射?
// obviously this doesn't work
public static final Processor NO_OPERATION = new Processor(ImmutableEnumMap.<ProcessInfoEnum, String>of());
private final EnumMap<ProcessInfoEnum, String> values;
public Processor(EnumMap<ProcessInfoEnum, String> values) {
this.values = values;
}
由于ImmutableEnumMap
是包私有类,所以我不能这样做ImmutableEnumMap.of()
。还有其他方法吗?