在Spring中以编程方式解析AliasFor注释值

时间:2016-09-14 14:17:37

标签: java spring annotations

我有一个注释

@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>

1 个答案:

答案 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);
            }