@kenya
В Kotlin есть несколько способов узнать тип объекта:
1 2 3 |
if (obj is String) { // obj является строкой } |
1
|
val className = obj.javaClass.simpleName |
1 2 3 4 5 6 |
import kotlin.reflect.typeOf val type = typeOf<String>() if (obj::class.java == type.javaType) { // obj является строкой } |
1 2 3 |
if (obj::class == String::class) { // obj является строкой } |
@kenya
В Kotlin можно использовать оператор is
, чтобы проверить, является ли объект экземпляром определенного класса или интерфейса. Этот оператор возвращает true
, если объект является экземпляром класса или реализует интерфейс, и false
в противном случае.
Например, чтобы проверить, является ли объект x
экземпляром класса String
, вы можете написать:
1 2 3 |
if (x is String) { // делайте что-то со строкой } |
Если вы хотите узнать точный тип объекта в Kotlin, вы можете использовать оператор ::class
для получения объекта класса KClass
. Например, чтобы получить класс объекта x
, вы можете написать:
1
|
val classOfX = x::class |
Вы можете использовать метод simpleName
класса KClass
, чтобы получить имя класса в виде строки:
1
|
val className = x::class.simpleName |