Как сравнивать элементы перечисления?
Компилятор преобразует экземпляры enum в static константы, которые к тому же являются singleton-ами. Поэтому, для сравнения можно использовать «==».
Все классы наследуются от java.lang.Enum. При этом все методы, кроме toStrng являются финальными. Поэтому, функция equals, также подходит для сравнения перечислений. Но, проще использовать оператор «==», так как:
- Чтобы не появилась ошибка NullPointerException, нужно удостовериться, что переменная, у которой вызывается метод equals, не null. С «==» таких сложностей нет.
- Если попытаться сравнивать объекты разных типов, оператор «==» предупредит, что такое сравнение невозможно. Функция equals в таком случае будет всегда выдавать false, такую ошибку обнаружить намного труднее.
Оператор «==» выполняется быстрее.
Проверьте себя после изучения темы
Бесплатный бот с тестами и практическими заданиями по Kotlin.
- 22 бесплатных урока
- Тесты к каждому уроку (всего 220 вопросов)
- Задачи в рамках практики KotlinSprint (120 задач) и курсовой проект «Телеграм бот для изучения иностранных слов»