Hi Joe,
Thanks for the reply and hinting me the right direction!
I had seen these methods but was missing the down-cast to
AnnotatedParameterizedType which gives access to
getAnnotatedActualTypeArguments(). In case it's helpful to others, that's
what I ended up with:
Field myField = ...;
// ListString
AnnotatedParameterizedType type = (AnnotatedParameterizedType)
declaredField.getAnnotatedType();
// String
AnnotatedType typeArg = type.getAnnotatedActualTypeArguments()[0];
// @NotNull
Annotation annotation = typeArg.getAnnotations()[0];
Thanks again,
--Gunnar
2014-03-13 15:39 GMT+01:00 Joe Darcy joe.da...@oracle.com:
Hello,
See the methods in java.lang.reflect named getAnnotedFoo which return
java.lang.reflect.AnnotedType or a subinterface.
-Joe
On 3/13/2014 6:24 AM, Gunnar Morling wrote:
Hi,
Is it possible to retrieve type annotations (as defined by JSR 308) using
reflection at runtime? E.g. I would like to retrieve the @NotNull
annotation from a member declared like this:
private List@NotNull String names;
I assumed that this would be possible using reflection, but I couldn't
find
a way to do it. Is there an example for this somewhere? Or are type
annotations only meant to be accessed by compile-time tools such as the
Checker framework?
I noticed that the byte code of my class contains information about the
annotation, so I guess one could access it by examining the class file if
it's really not possible via the reflection API.
Many thanks,
--Gunnar