在Kotlin中的getClass()之后获取simpleName()

时间:2019-06-20 17:54:38

标签: java android string kotlin

在Java中,我可以使用getClass(),然后从该类对象检索simpleName,而不会出现任何问题。

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

但是当转换为Kotlin时,这会引起警告

  

该调用使用在编译类路径中找不到的反射API。   确保您在类路径中有kotlin-reflect.jar

科特林代码是

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

避免的正确方法是什么

  

kotlin.jvm.KotlinReflectionNotSupportedError吗?需要额外的   对kotlin-reflect.jar的依赖。也许会更好用   :: class.java.simpleName

3 个答案:

答案 0 :(得分:4)

使用someObject::class.java.simpleName

答案 1 :(得分:3)

在Kotlin中有几种方法可以做到这一点 您可以通过属性- KClass.qualifiedName

接收名称。
Thread 1: Fatal error: Accessing State<String> outside View.body

或通过 Class.getName

val name = AClass::class.qualifiedName;

,或者您可以尝试使用 Class.name

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

Class.canonicalName

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

答案 2 :(得分:1)

很多答案都要求您输入您的班级名称,好吧,我为您提供了最短的解决方案。

javaClass.simpleName

您可以在任何地方使用上面的行获取类名称,它将返回您当前的类名称。