比较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

回到顶部