НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
1263 of 1310 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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить