【发布时间】:2010-10-06 17:50:10
【问题描述】:
可以在 Java 中的枚举上使用 ==,还是需要使用 .equals()?在我的测试中,== 总是有效,但我不确定我是否能保证这一点。特别是,枚举上没有 .clone() 方法,所以我不知道是否有可能获得一个枚举,.equals() 将返回与 == 不同的值。
例如,这样可以吗:
public int round(RoundingMode roundingMode) {
if(roundingMode == RoundingMode.HALF_UP) {
//do something
} else if (roundingMode == RoundingMode.HALF_EVEN) {
//do something
}
//etc
}
还是需要这样写:
public int round(RoundingMode roundingMode) {
if(roundingMode.equals(RoundingMode.HALF_UP)) {
//do something
} else if (roundingMode.equals(RoundingMode.HALF_EVEN)) {
//do something
}
//etc
}
【问题讨论】:
-
@assylias 这个问题排在第一位。也许标记 ♦ 注意,因为我不确定这两者是否应该合并。
-
@MattBall 我认为引用 JLS 的问题的答案是最好的答案,这就是我选择关闭这个问题的原因。