РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
63 of 1163 menu

Ключевое слово instanceof

Ключевое слово instanceof проверяет, является ли объект экземпляром указанного класса, подкласса или реализует ли он указанный интерфейс. В первом операнде мы передаем объект для проверки, во втором - тип (класс или интерфейс), с которым сравниваем. Оператор возвращает true, если объект принадлежит указанному типу, и false в противном случае. Если объект равен null, результатом всегда будет false.

Начиная с Java 16 оператор instanceof поддерживает сопоставление с образцом (pattern matching). Это позволяет одновременно с проверкой типа объявить переменную, в которую будет приведен объект при успешной проверке.

Синтаксис

object instanceof Type object instanceof Type variableName

Пример

Давайте проверим, является ли объект экземпляром класса String:

public class Main { public static void main(String[] args) { Object obj = "abcde"; System.out.println(obj instanceof String); } }

Результат выполнения кода:

true

Пример

Давайте проверим объект на принадлежность к классу Integer, когда на самом деле это строка:

public class Main { public static void main(String[] args) { Object obj = "abcde"; System.out.println(obj instanceof Integer); } }

Результат выполнения кода:

false

Пример

Давайте проверим, реализует ли объект интерфейс List:

import java.util.List; public class Main { public static void main(String[] args) { Object obj = List.of(1, 2, 3, 4, 5); System.out.println(obj instanceof List); } }

Результат выполнения кода:

true

Пример

Давайте проверим объект на null:

public class Main { public static void main(String[] args) { Object obj = null; System.out.println(obj instanceof String); } }

Результат выполнения кода:

false

Пример

Давайте используем сопоставление с образцом, чтобы сразу привести объект к нужному типу:

public class Main { public static void main(String[] args) { Object obj = "abcde"; if (obj instanceof String str) { System.out.println(str.length()); } } }

Результат выполнения кода:

5

Пример

Давайте проверим принадлежность объекта к подклассу:

class Animal {} class Dog extends Animal {} public class Main { public static void main(String[] args) { Animal animal = new Dog(); System.out.println(animal instanceof Animal); System.out.println(animal instanceof Dog); } }

Результат выполнения кода:

true true

Смотрите также

  • ключевое слово extends,
    которое наследует класс от другого класса
  • ключевое слово implements,
    которое реализует интерфейс в классе
  • ключевое слово inheritance,
    которое описывает наследование классов
  • ключевое слово interface,
    которое объявляет интерфейс
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить