Получить тип переменной в Котлине

Как найти тип переменной в Kotlin? В Java есть instanceof , но Kotlin не существует:

 val properties = System.getProperties() // Which type? 

Вы можете использовать отражение, чтобы сделать это:

 val widget = ... println("${widget::class.qualifiedName}") // with package name or... println("${widget::class.simpleName}") // ... only class name 

Пожалуйста, обратите внимание:

На платформе Java компонент времени выполнения, необходимый для использования функций отражения, распространяется как отдельный JAR-файл (kotlin-reflection.jar). Это делается для уменьшения требуемого размера библиотеки времени выполнения для приложений, которые не используют функции отражения. Если вы используете отражение, убедитесь, что .jar-файл добавлен в путь к классам вашего проекта.

Источник: https://kotlinlang.org/docs/reference/reflection.html#bound-class-references-since-11

Чтобы проверить конкретный тип, вы можете использовать оператор is .

 if(widget is Widget) { // ... } 
Intereting Posts
Потоки, выполняемые последовательно Есть ли способ показать все функции расширения данного класса Kotlin в Intellij IDE? Запуск тестов из Android Studio IDE не восстанавливает чистый библиотечный модуль Java Что из ключевого слова в котлин Loop JPA-массив без запуска Lob-выборки Стилирование элементов HTML в Kotlin-js Есть ли какой-нибудь метод в Kotlin, который позволяет мне перевести значение из диапазона в другой диапазон? конвертировать андроид hashmap в kotlin Заменить setter для переменной, определенной в конструкторе по умолчанию Несоответствие типов. Обязательная карта <String, Any> Найдено карта <String, Any?> Как динамически масштабировать отскок потока эмиссионных выбросов? Array / List iteration без дополнительных распределений объектов Как использовать RetroFit2 responseBodyConverter в Котлин? Kotlin Android начинает новую деятельность Генераторы Котлина, ожидающие неожиданного типа