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

xoefb8l8  于 2023-02-28  发布在  Java
关注(0)|答案(4)|浏览(232)

在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会更好

fafcakar

fafcakar1#

使用someObject::class.java.simpleName

6tqwzwtp

6tqwzwtp2#

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

val name = AClass::class.qualifiedName;

或通过 * 类.getName*

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

也可以尝试使用 * Class.name *

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

或 * 类.规范名称 *

var name = AClass::class.java.canonicalName as String
hk8txs48

hk8txs483#

很多答案都要求你输入你的类名,那么我有一个最短的解决方案给你。

javaClass.simpleName

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

zkure5ic

zkure5ic4#

假设你在同一个类或活动中,那么要获得活动或类的名称你可以调用。

this::class.simpleName

假设您的活动/类名称为LoginActivityV2,那么您还可以使用
this@LoginActivityV2::class.simplename

相关问题