Kotlin kotlinClass.class.getName()不能返回包名,而只能返回简单的类名
AClass.class.getName();
如果AClass是一个java类,这个方法将返回包名和类名。 但是当我将AClass java文件转换为Kotlin文件时,它只会返回一个类名。 所以系统找不到这个类的路径
上面的代码
有许多方法可以在kotlin中获得java Class
的全限定名:
通过属性KClass.qualifiedName
获取名称:
val name = AClass::class.qualifiedName;
或通过属性Class.name
获取名称:
val name = AClass::class.java.name;
或通过方法获取名称Class#getName
:
val name = AClass::class.java.getName();
一个类的合格名称表如下:
|-----------------------|-----------------------|-----------------------| | | Class | Anonymous Class | |-----------------------|-----------------------|-----------------------| | KClass.qualifiedName | foo.bar.AClass | null | |-----------------------|-----------------------|-----------------------| | Class.name | foo.bar.AClass | foo.bar.AClass$1 | |-----------------------|-----------------------|-----------------------| | Class.getName() | foo.bar.AClass | foo.bar.AClass$1 | |-----------------------|-----------------------|-----------------------|
尝试以下解决方案:: –
var name = MainActivity::class.java.canonicalName as String