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

Как найти тип переменной в 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) { // ... }