3
這裏是我的代碼。基本上我試圖從我的intToEnumMap
方法返回一個地圖。但是編譯器不允許這樣做。爲什麼編譯器不能推斷我的方法的返回類型?爲什麼編譯器無法推斷我的方法的返回類型?
public enum INVALIDTHRESHOLDSTATE{
ONE(0,GAUGE_MIN_LOWER_THRESHOLD1_MESSAGE),
TWO(1,GAUGE_THRESHOLD1_LOWER_THRESHOLD2_MESSAGE),
THREE(2,GAUGE_THRESHOLD2_LOWER_MAX_MESSAGE);
private static final Map<Integer,INVALIDTHRESHOLDSTATE> intToEnum = new HashMap<Integer, INVALIDTHRESHOLDSTATE>();
static {
int i=0;
for (INVALIDTHRESHOLDSTATE invalidState : values()){
i++;
intToEnum.put(Integer.valueOf(i), invalidState);
}
}
private int value;
private String message;
private INVALIDTHRESHOLDSTATE(int value,String message){
this.value = value;
this.message = message;
}
public int getValue() {
return value;
}
public String getString() {
return message;
}
// Generic method
public static <K,V> Map<K,V> intToEnumMap() {
return intToEnum; //doesn't compile
^^^^^^^^^
}
}
你能提出命名約定嗎? – Inquisitive 2013-03-15 16:12:04
@Inquisitive:'InvalidThresholdState' - Java枚舉的名稱應該是PascalCased,就像任何其他類一樣。 – 2013-03-15 16:14:34
感謝您的澄清。代碼中發生了什麼你寫的任務的右側?我之前沒有看到過這個構造。 – Inquisitive 2013-03-15 16:16:21