我有一个注释
@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()
到Class<D>
?
我尝试使用AnnotationUtils
来合成注释,但当我检索到值时,我不断得到Class<Void>
。
答案 0 :(得分:0)
经过一番挖掘,答案是我使用了错误的课程。可以使用AnnotationUtils
来完成AnnotatedElementUtils
,而不是@Test
public void shouldFindAliasedValue() {
Class<?> actual = AnnotatedElementUtils.findMergedAnnotation(C.class, A.class).value();
then(actual).isEqualTo(D.class);
}
:
//skip null records in database
if (objectDate.length() < 10) {
continue;
} else {
recordDateAsString = objectDate.substring(0, 10);
}