如何访问接收方类型参数上的类型批注
2022-09-02 22:27:42
我正在研究一个相当平凡的类,其中包含定义带注释的接收器类型的单个方法:
class Foo<T> {
void foo(Foo<@Bar T> this) {}
}
我现在想访问接收器类型参数上的类型注释,但Java反射API在访问接收器时返回带注释的原始类型:@Bar
assert Foo.class.getDeclaredMethod("foo")
.getAnnotatedReceiverType()
instanceof AnnotatedParameterizedType;
断言失败,因为返回的带批注类型作为原始类型返回。这是故意的吗?我仍然可以在访问返回的实现的私有属性时找到注释。Foo
@Bar
AnnotatedType
我正在运行最新版本的Java 8。