FasterXML / FasterXML/java-classmate

AnnotatedType support

未关闭
#25 7 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Java
星标
266
派生
47
平均合并
1 小时 42 分钟
30 天内合并 PR
1

描述

New to Java 8, the AnnotatedType class carries annotations bind to types in Generic expressions.
So if I write

```
@MaxLength(3) List<@NotNull Integer> myField;
```

I can get the `@NotNull` annotation via something like:

```
Field f = MyClass.class.getDeclaredField("myField");
AnnotatedParameterizedType annType = (AnnotatedParameterizedType) field.getAnnotatedType();
AnnotatedType[] childAnnotatedTypes = annType.getAnnotatedActualTypeArguments();
```

But then I have to assume the parameter I want is the first in the returned array. But maybe I have something like

```
class MyFunnyList implements List<@NotNull Integer> {}
// ...
private MyFunnyList<@Null String> myFunnyField;
```

Using `ResolvedType`, I can call `type.typeParametersFor(List.class).get(0)` to get the correct parameter type (`Integer` rather than `String`). It'd be nice to have also a way to retrieve the annotations associated with it (`@NotNull` rather than `@Null`). Note that this feature must not break support for Java 7, so some type of switch will probably need to be used.

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。