如果可能,修改getIndex()方法,使其返回枚举而不是整数.如果无法做到这一点,则需要将索引映射到枚举元素:
鉴于以下枚举:
public enum Index {
ONE,
TWO,
THREE...}
您可以使用将索引映射到枚举元素
Index.values()[index]
给定你的方法Integer getIndex(),你可以做类似的事情
switch(Index.values()[getIndex...()])
case ONE : …
break;
case TWO : …
break;
case THREE : …
break;
}
请注意,如果您尝试访问枚举中大于枚举元素数的索引(例如,在上面的示例中...我将表达式Index.values()[getIndex()]封装到类似于valueOf(int index)的枚举方法中,类似于默认的valueOf(String s).然后,您还可以在那里处理有效的数组索引检查...values().length) {
return INVALID;
}
return values()[index];
}
}
这仅是一个示例 – 在任何情况下,它通常取决于您从getIndex()方法获得的值的范围