Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
1272 of 1319 menu
◀ ▶

Функция isInstance

Функция isInstance проверяет, является ли объект экземпляром указанного класса или его подкласса. Применяется для проверки типа во время выполнения программы (runtime type checking). Функция доступна через объект Class и возвращает true если объект принадлежит к указанному типу, или false в противном случае.

Синтаксис

val className: Class<*> val result: Boolean = className.isInstance(obj)

Пример

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

val obj: Any = "Hello, Kotlin!" val stringClass = String::class.java val res: Boolean = stringClass.isInstance(obj) println(res)

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

Boolean true

Пример

Проверим, является ли объект экземпляром класса Int:

val obj: Any = "Hello, Kotlin!" val intClass = Int::class.java val res: Boolean = intClass.isInstance(obj) println(res)

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

Boolean false

Пример

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

open class Animal class Dog : Animal() val animal: Animal = Dog() val animalClass = Animal::class.java val res: Boolean = animalClass.isInstance(animal) println(res)

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

Boolean true

Пример

Использование isInstance с массивами:

val array: Any = intArrayOf(1, 2, 3, 4, 5) val arrayClass = IntArray::class.java val res: Boolean = arrayClass.isInstance(array) println(res)

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

Boolean true

Пример

Сравнение с оператором is:

val obj: Any = "Test" // Способ 1: оператор is val res1: Boolean = obj is String println("Using 'is' operator: $res1") // Способ 2: функция isInstance val stringClass = String::class.java val res2: Boolean = stringClass.isInstance(obj) println("Using isInstance: $res2")

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

Using 'is' operator: true Using isInstance: true

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

  • ключевое слово class,
    которое используется для объявления классов
  • ключевое слово init,
    которое используется для блоков инициализации
  • ключевое слово this,
    которое ссылается на текущий экземпляр класса
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить