나는 매개 변수로 Map<ProcessInfoEnum, String>
걸리는 생성자가 있습니다. 그래서 NO_OPERATION
변수를 아래와 같이 빈 불변 맵으로 초기화하고 있습니다. 지금은 NO_OPERATION
위해 같은 해당 라인을 쓸 수있는 방법을하지만 너무 ImmutableEnumMap
로 초기화 할 수guava를 사용하여 빈 ImmutableEnumMap을 초기화하는 방법은 무엇입니까?
public Processor(EnumMap<ProcessInfoEnum, String> values) {
this.values = values;
}
: 아래 그림과 같이
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
를 사용하여 내 생성자를 변경 한 빈 불변 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'으로 변경하라는 메시지가 나타납니다. –