我有一个注释
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface A {
Class<?> value();
}
和另一个使用的注释@AliasFor
@A (Void.class)
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface B {
@AliasFor(annotation = A.class)
Class<?> value();
}
这是在课堂上使用的
@B(D.class)
public class C implements D {
}
如果我有一个实例C
,我怎样才能以编程方式解决A.value()
to Class<D>
?
我正在尝试综合注释AnnotationUtils
但是当我检索到我不断得到的值时Class<Void>
.
经过一番挖掘后,答案是我使用了错误的类。代替AnnotationUtils
可以用以下方法完成AnnotatedElementUtils
:
@Test
public void shouldFindAliasedValue() {
Class<?> actual = AnnotatedElementUtils.findMergedAnnotation(C.class, A.class).value();
then(actual).isEqualTo(D.class);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)