Ich habe eine Kotlin-Klasse, deren Eigenschaften eine Java-Annotation haben, aber ich kann diese Annotationen nicht mit Java-Reflektion umgehen:
%Vor%Der folgende Test gibt null aus:
%Vor%Wie kann ich die Anmerkungen einer bestimmten Kotlin-Eigenschaft erhalten?
Aus der Referenz von Kotlin :
Wenn Sie eine Eigenschaft oder einen primären Konstruktorparameter kommentieren, gibt es mehrere Java-Elemente, die aus dem entsprechenden Kotlin-Element generiert werden, und daher mehrere mögliche Positionen für die Annotation im generierten Java-Bytecode.
In diesem Fall möchten Sie das Feld mit Anmerkungen versehen, sodass Ihre Eigenschaftsdeklaration wie folgt aussehen sollte:
%Vor%Ihr Konstruktor würde wie folgt aussehen:
%Vor%Wie in einer anderen Antwort erwähnt, möchten Sie wahrscheinlich das Feld anstelle der Eigenschaft annotieren. Für den Fall, dass Sie die Eigenschaft wirklich mit Anmerkungen versehen müssen, können Sie die Anmerkungen über Kotlin reflection finden:
%Vor%Tags und Links java reflection kotlin