比较Java枚举成员:==或equals()?
我知道Java枚举被编译为具有私有构造函数和一堆公共静态成员的类。比较给定枚举的两个成员时,我一直使用.equals()
,例如
public useEnums(SomeEnum a){
if(a.equals(SomeEnum.SOME_ENUM_VALUE))
{
...
}
...
}
但是,我刚遇到一些使用equals运算符==而不是.equals()的代码:
public useEnums2(SomeEnum a){
if(a == SomeEnum.SOME_ENUM_VALUE)
{
...
}
...
}
我应该使用哪个运算符?
回答:
两者在技术上都是正确的。如果你查看源代码.equals()
,它只是顺应了==
。
我使用==
,但是,这将是null安全的。
以上是 比较Java枚举成员:==或equals()? 的全部内容, 来源链接: utcz.com/qa/411582.html