Accessing type annotations via annotation processor
Alex Buckley
alex.buckley at oracle.com
Mon Aug 11 18:13:31 UTC 2014
There are some known problems with retrieving type annotations on type
parameter declarations, in both the Core Reflection API and the Language
Model API. I believe type annotations on types used in member
declarations work OK. If you have the VariableElement for 'values', you
can get the TypeMirror for 'List<@NotNull String>', then visit it as a
DeclaredType and call getTypeArguments() to get a TypeMirror for
'@NotNull String'. TypeMirror is an AnnotatedConstruct so it can return
the annotations on the use of 'String'.
Alex
On 8/11/2014 3:22 AM, Gunnar Morling wrote:
> Hi,
>
> I'm looking for a way to obtain annotations given on type uses using a
> JSR 269 annotation processor.
>
> E.g. I'd like to obtain the @NotNull annotation from the following field
> declaration:
>
> ...
> private List<@NotNull String> values;
>
> Based on a post of Joe [1] I assumed this to be possible, but a
> discussion on this list now makes me believe this cannot be done as of
> Java 8. Is this true? If so, will this be the case in SE 9?
>
> On a tangent, Joe referenced a diff of the JavaDocs of two versions of
> the JSR 269 API, containing nicely colored mark-up highlighting the
> changes. What's the tool used for creating this diff?
>
> Thanks,
>
> --Gunnar
>
> [1] https://blogs.oracle.com/darcy/entry/jsr_269_mr_for_java
> [2] http://mail.openjdk.java.net/pipermail/compiler-dev/2014-May/008756.html
>
More information about the compiler-dev
mailing list