Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
20 Май 2023
1 мин
158

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

Существует множество ситуаций, когда разработчики хотят проверить, является ли объект экземпляром определенного класса или нет. Иногда они хотят

Существует множество ситуаций, когда разработчики хотят проверить, является ли объект экземпляром определенного класса или нет. Иногда они хотят выполнить определенные действия, если объект НЕ является экземпляром определенного класса. В Java для этого используется оператор instanceof.

Пример:

if(!(myObject instanceof SomeClass)) { 
  // выполнить действие 
}

Однако, некоторые разработчики могут найти эту синтаксис громоздким и не очень красивым. Они могут искать более «красивый» способ отрицания instanceof.

К сожалению, в языке Java нет «красивого» способа отрицания instanceof. Java не поддерживает синтаксис вида !instanceof. Поэтому, самый простой и понятный способ сделать это — использовать оператор отрицания (!) перед условием, как показано в примере выше.

Кроме того, если в коде часто возникает необходимость проверять, что объект НЕ является экземпляром определенного класса, возможно, стоит пересмотреть архитектуру приложения. Часто это может указывать на то, что классы в приложении не корректно разделены или нарушается принцип подстановки Барбары Лисков (Liskov Substitution Principle).

В заключение, хоть и некоторые разработчики могут считать синтаксис if(!(myObject instanceof SomeClass)) неудобным или несколько громоздким, он является единственным безопасным и корректным способом «отрицания» instanceof в Java.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий