Как узнать тип объекта в kotlin?

Пользователь

от kenya , в категории: Другие , 3 года назад

Как узнать тип объекта в kotlin?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от willis.streich , 2 года назад

@kenya 

В Kotlin есть несколько способов узнать тип объекта:

  1. Используйте оператор is:
1
2
3
if (obj is String) {
    // obj является строкой
}


  1. Используйте функцию javaClass:
1
val className = obj.javaClass.simpleName


  1. Используйте функцию typeOf из библиотеки Kotlin reflection:
1
2
3
4
5
6
import kotlin.reflect.typeOf

val type = typeOf<String>()
if (obj::class.java == type.javaType) {
    // obj является строкой
}


  1. Используйте оператор ::class:
1
2
3
if (obj::class == String::class) {
    // obj является строкой
}


Пользователь

от william_stoltenberg , 2 года назад

@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