当曾经enums在开关时,假设是几乎自然的他们将使用象一个规则开关。 不幸地容纳enums, Java必须提高它的规格,并且在开关的enums跟在二重大和重要方式的规则开关语句不同地表现。

太阳的Javac说- “enum开关案件标签必须是列举常数的不够资格的名字。 在它的隐秘错误信息。 那大概是法语对许多。 我知道有困难时期了解这个声明的我。

因此我们了解此与一个简单例子:

交换(UserAgent.FIREFOX) {
    案件(UserAgent.IE) :
        失败(UserAgent.IE.to串() + “unexpected.");
}

这看明显地正确不它? 不幸地是错误的用二个不同的方式。
首先案件应该是,不用托架。 其次应该使用仅IE,但是不是UserAgent.IE。 我们说明两个与一个简单的(正确)例子的上述点:

交换(UserAgent.FIREFOX) {
    案件IE :
        失败(UserAgent.IE.to串() + “unexpected.");
}

总结:

  • 万一必须使用声明enum,不用托架。
  • 万一必须使用仅不够资格的enum名字(象在上述例子中的FIREFOX或IE)。

您那么现在不会犯与Java enums,权利的错误?