Как сравнивать элементы перечисления?

Компилятор преобразует экземпляры enum в static константы, которые к тому же являются singleton-ами. Поэтому, для сравнения можно использовать «==».

Все классы наследуются от java.lang.Enum. При этом все методы, кроме toStrng являются финальными. Поэтому, функция equals, также подходит для сравнения перечислений. Но, проще использовать оператор «==», так как:

  • Чтобы не появилась ошибка NullPointerException, нужно удостовериться, что переменная, у которой вызывается метод equals, не null. С «==» таких сложностей нет.
  • Если попытаться сравнивать объекты разных типов, оператор «==» предупредит, что такое сравнение невозможно. Функция equals в таком случае будет всегда выдавать false, такую ошибку обнаружить намного труднее.

Оператор «==» выполняется быстрее.

Поделиться уроком

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *