Я знаю, что перечисления 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)
    {
        ...
    }
    ...
}
Какой оператор я должен использовать?
