Kotlin kotlinClass.class.getName() 不能返回包名,只能返回简单的类名

新手上路,请多包涵

AClass.class.getName();

如果 AClass 是一个 java 类,这个方法将返回包名和类名。但是当我将 AClass java 文件转换为 Kotlin 文件时,它只会返回一个类名。所以系统找不到这个类路径

上面的代码

原文由 Stackoverflow 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 916
1 个回答

有很多方法可以在 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   |
|-----------------------|-----------------------|-----------------------|

原文由 holi-java 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题