Оператор instanceof
не требует явных проверок null
, поскольку он не выдает NullPointerException
, если операндом является null
.
Во время выполнения результат оператора instanceof
равен true, если значение реляционного выражения не равно null
и ссылка может быть приведена к ссылочному типу без вызова исключения приведения класса.
Если операндом является null
, оператор instanceof
возвращает false
и, следовательно, явные проверки на ноль не требуются.
Рассмотрим приведенный ниже пример,
public static void main(String[] args) {
if(lista != null && lista instanceof ArrayList) { //Violation
System.out.println("In if block");
}
else {
System.out.println("In else block");
}
}
Правильное использование instanceof
показано ниже,
public static void main(String[] args) {
if(lista instanceof ArrayList){ //Correct way
System.out.println("In if block");
}
else {
System.out.println("In else block");
}
}