Как сравнивать элементы перечисления?
Компилятор преобразует экземпляры enum в static константы, которые к тому же являются singleton-ами. Поэтому, для сравнения можно использовать «==».
Все классы наследуются от java.lang.Enum. При этом все методы, кроме toStrng являются финальными. Поэтому, функция equals, также подходит для сравнения перечислений. Но, проще использовать оператор «==», так как:
- Чтобы не появилась ошибка NullPointerException, нужно удостовериться, что переменная, у которой вызывается метод equals, не null. С «==» таких сложностей нет.
- Если попытаться сравнивать объекты разных типов, оператор «==» предупредит, что такое сравнение невозможно. Функция equals в таком случае будет всегда выдавать false, такую ошибку обнаружить намного труднее.
Оператор «==» выполняется быстрее.
Бесплатные Telegram-боты для обучения
Практика с проверкой кода и помощью ИИ-ментора
AndroidSprint AI Mentor
Проверяет Pull Request'ы в GitHub, проводит тестовые собеседования с голосом и таймером, помогает разбираться с кодом 24/7
Попробовать ИИ-ментора →KotlinSprint Bot
22 урока Kotlin, 220 тестов, 120 практических задач с код-ревью
Начать обучение Kotlin →