Лучший способ «отрицать» instanceof в Java

Перейти в телеграм, чтобы получить результаты теста
Пройдите тест, узнайте какой профессии подходите
Вам подходит профессия:
Аналитик данных
Основные характеристики профессии:
не нужно общаться с людьми
логика
анализ
поиск закономерностей
работа с числами
Построим личный план перехода в профессию для вас бесплатно
- убедитесь, подходит вам профессия или нет
- получите оценку своих навыков и шансов освоить профессию
- забронируем за вами скидку 55% на обучение, пока думаете
Позвоним вам в течение часа — не пропустите звонок
Чем занимается специалист
Специалист создает все онлайн-продукты, программы, приложения, игры и сайты, которыми вы пользуетесь каждый день.
Создает — значит описывает последовательность действий на специальном языке программирования. Настраивает действия, что должно произойти, если пользователь нажмет на кнопку.
Средняя зарплата начинающего специалиста в первый год работы:
от 50 000 ₽
Что надо знать и уметь, чтобы выучиться на аналитика:
- базовое школьное образование
- уверенные навыки работы с компьютером
- опыт выполнения задач в конкретные сроки
Глубокие знания математики или английского не нужны
Почему мы рекомендуем вам эту профессию
Ваш скрытый талант:
наблюдательность
Существует множество ситуаций, когда разработчики хотят проверить, является ли объект экземпляром определенного класса или нет. Иногда они хотят
Существует множество ситуаций, когда разработчики хотят проверить, является ли объект экземпляром определенного класса или нет. Иногда они хотят выполнить определенные действия, если объект НЕ является экземпляром определенного класса. В Java для этого используется оператор instanceof
.
Пример:
if(!(myObject instanceof SomeClass)) {
// выполнить действие
}
Однако, некоторые разработчики могут найти эту синтаксис громоздким и не очень красивым. Они могут искать более «красивый» способ отрицания instanceof
.
К сожалению, в языке Java нет «красивого» способа отрицания instanceof
. Java не поддерживает синтаксис вида !instanceof
. Поэтому, самый простой и понятный способ сделать это — использовать оператор отрицания (!
) перед условием, как показано в примере выше.
Кроме того, если в коде часто возникает необходимость проверять, что объект НЕ является экземпляром определенного класса, возможно, стоит пересмотреть архитектуру приложения. Часто это может указывать на то, что классы в приложении не корректно разделены или нарушается принцип подстановки Барбары Лисков (Liskov Substitution Principle).
В заключение, хоть и некоторые разработчики могут считать синтаксис if(!(myObject instanceof SomeClass))
неудобным или несколько громоздким, он является единственным безопасным и корректным способом «отрицания» instanceof
в Java.
Добавить комментарий