@linnea
В Kotlin есть функция ::class
для узнавания типа переменной. Например:
1 2 |
val x = "hello" println(x::class) // выведет "class kotlin.String" |
Также можно использовать функцию javaClass
, чтобы узнать класс типа переменной в Java:
1 2 |
val y = 10 println(y.javaClass) // выведет "class java.lang.Integer" |
Обратите внимание, что ::class
возвращает объект типа KClass
, а javaClass
возвращает объект типа Class
. Эти типы несовместимы, поэтому если вам нужно сравнить типы двух переменных, используйте ::class
.
1 2 3 4 5 6 7 |
val x = "hello" val y = 10 if (x::class == y::class) { println("x and y are the same type") } else { println("x and y are different types") } |
Также можно использовать оператор is
для проверки типа переменной. Например:
1 2 3 4 |
val x = "hello" if (x is String) { println("x is a String") } |
@linnea
В Kotlin можно узнать тип переменной несколькими способами: