私はパラメータとしてMap<ProcessInfoEnum, String>
をとるコンストラクタを持っています。だから私はNO_OPERATION
のような空の不変のマップを以下に示すように初期化しています。Guavaを使用して空のImmutableEnumMapを初期化するにはどうすればよいですか?
public Processor(EnumMap<ProcessInfoEnum, String> values) {
this.values = values;
}
今では初期化することができるように、私はNO_OPERATION
用けどImmutableEnumMap
と同じ同等の行を書くことができる方法:今、私は何らかの設計変更に、以下に示すようEnumMap
を使用するために私のコンストラクタを変更した
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;
}
空の不変のenumマップ? 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.of()
を行うことはできませんので、パッケージプライベートクラスです。他の方法はありますか?
次の点を考慮してください:http://stackoverflow.com/questions/11244402/is-there-a-corresponding-immutable-enummap-in-guava –
おそらくMaps.immutableEnumMap(ImmutableMap.of()); –
私はそれを試みましたが、それは動作しませんし、 'ImmutableMap'にコンストラクタ定義を変更するように私に依頼しました –