Получение simpleName () после getClass () в Kotlin - PullRequest
2 голосов
/ 20 июня 2019

В Java я могу использовать getClass (), а затем без проблем получить simpleName из этого объекта класса.

String tag = someObject.getClass().getSimpleName(); // java code

Но при конвертации в Kotlin это вызывает предупреждения

Call использует API отражения, которого нет в пути к классам компиляции. Убедитесь, что в пути к классам есть файл kotlin-refle.jar

Код котлина

someObject::class.simpleName!! // kotlin code

Как правильно избегать

kotlin.jvm.KotlinReflectionNotSupportedError? Нуждается в дополнительном зависимость от kotlin-refle.jar. Может быть, будет лучше использовать :: class.java.simpleName

Ответы [ 2 ]

4 голосов
/ 20 июня 2019

Использование someObject::class.java.simpleName.

3 голосов
/ 20 июня 2019

Есть несколько способов сделать это в Kotlin. Вы можете получить имя через свойство - KClass.qualifiedName

val name = AClass::class.qualifiedName;

или через Class.getName

val name = AClass::class.java.getName();

или вы можете попробовать Class.name

val name = AClass::class.java.name;

или Class.canonicalName

var name = AClass::class.java.canonicalName as String
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...