我目前正在开发一个项目(数据库实现),该项目涉及一个枚举类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。就是上面提到的typeMappingHashMap。
我不知道是什么导致了这个或如何解决它,有谁知道如何解决这个问题,或者我能做什么?