在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会更好
4条答案
按热度按时间fafcakar1#
使用
someObject::class.java.simpleName
。6tqwzwtp2#
在Kotlin中有几种方法可以实现这一点。您可以通过属性- KClass.qualifiedName 接收名称
或通过 * 类.getName*
也可以尝试使用 * Class.name *
或 * 类.规范名称 *
hk8txs483#
很多答案都要求你输入你的类名,那么我有一个最短的解决方案给你。
你可以在任何地方使用上面的行来获取类名,它会返回你当前的类名。
zkure5ic4#
假设你在同一个类或活动中,那么要获得活动或类的名称你可以调用。
假设您的活动/类名称为
LoginActivityV2
,那么您还可以使用this@LoginActivityV2::class.simplename