Java 8类型注释

时间:2014-08-25 03:52:22

标签: java types annotations java-8

这可能是标准的Java 8教科书问题,但我一直在努力寻找答案。

我在匿名类中声明了一个变量

C c1 = new C () {
    @Anno1(sequence=1) @Anno2 StringVariable s = new @Anno3 StringVariable ("b");
}

我有一个注释处理器需要检测注释了@Anno2的变量是否也注明了@Anno3并对返回的值做了一些特别的事情(在我的例子中,调用一个额外的方法)赋予StringVariable)。

然而,我无法检测到@ Anno3的存在。我怎么得到它?

我的注释是: Anno1,Anno2,Anno3都有类似的定义

@Retention(RetentionPolicy.RUNTIME)
@Target(value = {ElementType.FIELD, ElementType.TYPE_USE, ElementType.PARAMETER})
public @interface Anno3 {}

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
@Documented
public @interface Anno1 {
     int sequence();
}

和Anno2是

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
@Documented
public @interface Anno2 {}

0 个答案:

没有答案