Java中的isEnum,在Java中的枚举上使用==可以吗?

Is it OK to use == on enums in Java, or do I need to use .equals()? In my testing, == always works, but I'm not sure if I'm guaranteed of that. In particular, there is no .clone() method on an enum, so I don't know if it is possible to get an enum for which .equals() would return a different value than ==.

For example, is this OK:

public int round(RoundingMode roundingMode) {

if(roundingMode == RoundingMode.HALF_UP) {

//do something

} else if (roundingMode == RoundingMode.HALF_EVEN) {

//do something

}

//etc

}

Or do I need to write it this way:

public int round(RoundingMode roundingMode) {

if(roundingMode.equals(RoundingMode.HALF_UP)) {

//do something

} else if (roundingMode.equals(RoundingMode.HALF_EVEN)) {

//do something

}

//etc

}

解决方案

Just my 2 cents: Here is the code for Enum.java, as published by Sun, and part of the JDK:

public abstract class Enum>

implements Comparable, 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;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值