Чтобы развернуть ответ @ alxgmpr, оператор ::class
возвращает KClass
, который является ссылкой на класс Kotlin. Концептуально он аналогичен типу Class
в Java, но технически отличается, так как должен обеспечивать специфические для Kotlin возможности (например, isSealed
, isCompanion
).
Итак KClass != Class
.
Однако Intent
написан на Java и ничего не знает о KClass
(но он знает о Class
), поэтому вам нужно использовать KClass.java
, который возвращает класс Java соответствующий этому конкретному KClass
.
Вот пример, который должен прояснить, что (типы явны для дифференциации двух переменных):
val kClass: kotlin.reflect.KClass<String> = String::class
val javaClass: java.lang.Class<String> = kClass.java // equivalent to String::class.java