java 枚举类型 equals,比较Java枚举成员:==或equals()?

I know that Java enums are compiled to classes with private constructors and a bunch of public static members. When comparing two members of a given enum, I've always used .equals(), e.g.

public useEnums(SomeEnum a)

{

if(a.equals(SomeEnum.SOME_ENUM_VALUE))

{

...

}

...

}

However, I just came across come code that uses the equals operator == instead:

public useEnums2(SomeEnum a)

{

if(a == SomeEnum.SOME_ENUM_VALUE)

{

...

}

...

}

Which operator is the one I should be using?

解决方案

Both are technically correct. If you look at the source code for .equals(), it simply defers to ==.

I use ==, however, as that will be null safe.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值