在Java枚举中使用==可以吗?

是否可以==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

}

回答:

仅需2美分:这是Sun发布的Enum.java的代码,并且是JDK的一部分:

public abstract class Enum<E extends Enum<E>>

implements Comparable<E>, Serializable {

// [...]

/**

* Returns true if the specified object is equal to this

* enum constant.

*

* @param other the object to be compared for equality with this object.

* @return true if the specified object is equal to this

* enum constant.

*/

public final boolean equals(Object other) {

return this==other;

}

}

以上是 在Java枚举中使用==可以吗? 的全部内容, 来源链接: utcz.com/qa/421182.html

回到顶部