1

Auto Serviceを使用していくつかの注釈を処理していますが、Kotlin クラスに Annotation Processor 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

プロセスメソッド内でこれの 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私はこれを手に入れます: ここに画像の説明を入力

「内部」修飾子を検出する方法について何か考えはありますか?

4

1 に答える 1