我目前正在开发一个项目(数据库实现),该项目涉及一个枚举类ElementType
,其内部枚举名为TypeType
. 里面ElementType
有一个HashMap<TypeType, ArrayList<ElementType>>
将所有的映射ElementType
到它们对应的TypeType
值。
TypeType
的值为
[TEXT, NUMERIC_EXACT, NUMERIC_APPROX, OTHER]
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 {}
区域,我有这个代码:
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);});
}
eType
在 for 循环中提到的所有内容在 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。
我不知道是什么导致了这个或如何解决它,有谁知道如何解决这个问题,或者我能做什么?