我目前工作的一個項目(數據庫實現),涉及稱爲ElementType
與內枚舉枚舉類稱爲TypeType
。在ElementType
內部,有一個HashMap<TypeType, ArrayList<ElementType>>
將所有ElementType
的值映射到其對應的TypeType
值。錯誤枚舉與靜態初始化
的TypeType
的值是ElementType
(其對應TypeType
和)是
[CHARACTER(TEXT), CHAR(TEXT), DECIMAL(NUMBER_EXACT), DEC(NUMBER_EXACT), NUMERIC(NUMERIC_EXACT), INTEGER(NUMERIC_EXACT), INT(NUMERIC_EXACT), SMALLINT(NUMERIC_EXACT), FLAT(NUMERIC_APPROX), REAL(NUMERIC_EXACT), DOUBLE_PRECISION(NUMERIC_APPROX), DOUBLE(NUMERIC_APPROX), DATE(OTHER), TIME(OTHER), VARCHAR(OTHER), LONG_VARCHAR(OTHER)]
而在一個static {}
區域
[TEXT, NUMERIC_EXACT, NUMERIC_APPROX, OTHER]
的值,我有這樣的代碼:
for(ElementType eType : values()) {
TypeType t = eType.getTYPE();
if(typeMapping.get(t) != null)
typeMapping.get(t).add(eType);
else
typeMapping.put(t, new ArrayList<ElementType>() {add(eType);});
}
在for循環中提到的所有eType
在Eclipse中都帶有下劃線。
第一個給出了錯誤eType cannot be resolved
。第二個給出eType cannot be resolved to a variable
。
,第三個(在ArrayList
內)給出Syntax error on token "eType", VariableDeclaratorId expected after this token
。
的getTYPE()
方法是私有的,並返回每個的ElementType的TypeType。 typeMapping
是上面提到的HashMap。
我不知道是什麼原因造成這種或如何解決它,沒有人知道如何解決這個問題,或者我能做些什麼?
*「in a static {} area」*:你的意思是在ElementType枚舉的靜態初始化中嗎? – assylias 2012-08-05 13:25:01
下一次:_請不要寫一首詩,以便你能向我們展示5行代碼。代碼,我們可以立即剪切並粘貼到您的IDE中進行操作。參見[SSCCE](http://mindprod.com/jgloss/sscce.html)。 – 2012-08-05 14:05:01