我正在使用自动服务来处理一些注释,但我无法确定 Kotlin 类是否具有来自注释处理器 API 的“内部”可见性修饰符。
我在处理器中使用 KAPT 和 Kotlin。依赖项:
implementation group: 'org.jetbrains.kotlin', name: 'kotlin-reflect', version: "1.3.0-rc-190"
implementation files("${System.properties['java.home']}/../lib/tools.jar")
implementation 'com.squareup:kotlinpoet:1.0.0-RC2'
implementation "com.google.auto.service:auto-service:1.0-rc4"
kapt "com.google.auto.service:auto-service:1.0-rc4"
样本类:
@MyAnnotation
internal class Car
我在 process 方法中得到了 this 的 TypeElement
override fun process(annotations: MutableSet<out TypeElement>, roundEnv: RoundEnvironment): Boolean {
roundEnv.getElementsAnnotatedWith(MyAnnotation::class.java).forEach { classElement ->
if (classElement.kind != ElementKind.CLASS) {
error(...)
return true
}
classElement as TypeElement
但我不知道如何检测该类是否具有“内部”修饰符。
如果我这样做:classElement.modifiers
我得到这个:
关于如何检测“内部”修饰符的任何想法?