Java 在Kotlin中的getClass()之后获取simpleName()
在java中,我可以使用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 避免的正确方法
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