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