Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Kotlin中的getClass()之后获取simpleName()_Java_Android_String_Kotlin - Fatal编程技术网

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

Java 在Kotlin中的getClass()之后获取simpleName(),java,android,string,kotlin,Java,Android,String,Kotlin,在java中,我可以使用getClass()然后从该类对象中检索simpleName,而不会出现任何问题 String tag = someObject.getClass().getSimpleName(); // java code 但当转换为Kotlin时,会引起警告 调用使用在编译类路径中找不到的反射API。 确保类路径中有kotlin-reflect.jar kotlin代码是 someObject::class.simpleName!! // kotlin code 避免的正确方法

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

String tag = someObject.getClass().getSimpleName(); // java code
但当转换为Kotlin时,会引起警告

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

kotlin代码是

someObject::class.simpleName!! // kotlin code
避免的正确方法是什么

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


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

或者通过Class.getName

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

或Class.canonicalName


使用
someObject::class.java.simpleName

许多答案要求您输入您的类名,我为您提供了最短的解决方案

javaClass.simpleName

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

为什么不使用错误中推荐的替代方法
someObject::class.java.simpleName
我是Kotlin的新手,所以我不知道。另外,我刚刚尝试了它,我收到了“未解析的引用:java”。编辑:清理项目清除了它!你能补充一下答案吗,我接受。不过,这些似乎都不符合
simpleName
。它们都是标准名称。@Commonware解决方案是正确的。谢谢你的回复,埃德加。我相信你已经从其他正在学习Kotlin、跟随并阅读本文的人那里解决了一些其他问题。
val name = AClass::class.java.getName();
val name = AClass::class.java.name;
var name = AClass::class.java.canonicalName as String
javaClass.simpleName