kotlin - 如何在 Kotlin PSI 中获得类的完全限定域名?

标签 kotlin detekt intellij-platform-psi

我有一个 Kotlin 数据类:

package a.b.c

data class Example(
    …
)

我正在用 detekt 分析它它提供对 Kotlin PSI 的访问.

我正在尝试获取我类(class)的 FQDN:

println(klass.nameAsName?.identifier)

其中,klass 具有来自 Kotlin PSI 的 KtClass 类型。但是该代码只打印了我的类的简称,例如 Example,而我想获取 a.b.c.Example

如何在 Kotlin PSI 中获取类的完全限定域名?

最佳答案

KtClass 实现了 KtNamedDeclaration 接口(interface),该接口(interface)提供了 fqName 方法。

FqName getFqName();

这会给你你想要的。所以:

klass.fqName.asString()

关于kotlin - 如何在 Kotlin PSI 中获得类的完全限定域名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58420303/

相关文章:

flutter - 如何使用intellij Dart插件在dart中创建新语句

android - ListView可以出现在Activity中,但不能出现在Fragment中

generics - 为什么 Kotlin 扩展运算符在传递原始 vararg 参数时需要 toTypedArray()?

kotlin - 使用 SearchView 过滤 RecyclerView/ListAdapter

detekt - 如何在 detekt 中启用类型解析?

kotlin - 从 Kotlin psi API 检索 Kotlin 属性类型

java - 如何摆脱使用 Spring Boot 时 Detekt 发出的 SpreadOperator 性能警告?

java - Kotlin 的 Intent

kotlin - IntelliJ/Kotlin PSI 中的注释与注释条目