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







