Kotlin kotlinClass.class.getName() 不能返回包名,只能返回简单的类名
AClass.class.getName();
如果 AClass 是 java 类,则此方法将返回包名和类名。但是当我将AClass java文件转换为Kotlin文件时,它只会返回一个类名。所以系统找不到这个类路径
上面的代码
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