在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
答案 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
您可以在任何地方使用上面的行获取类名称,它将返回您当前的类名称。