Java注释-继承注释和RESTful 基本问题

Java注释-继承注释和RESTful 基本问题,java,inheritance,annotations,jersey,jax-rs,Java,Inheritance,Annotations,Jersey,Jax Rs,我希望继承注释,以便可以声明抽象类,包括用于配置的注释。然后,您只需扩展这个抽象类并实现所有抽象方法,而无需配置任何内容 public class A { } @MyAnno public class B extends A { public abstract void foo(); } public class C extends B { public void foo() { Magic.bar(); } } @Inherited @Targe

我希望继承注释,以便可以声明抽象类,包括用于配置的注释。然后,您只需扩展这个抽象类并实现所有抽象方法,而无需配置任何内容

public class A {

}

@MyAnno
public class B extends A {
    public abstract void foo();
}

public class C extends B {
    public void foo() {
        Magic.bar();
    }
}

@Inherited
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MyAnno {

}
但是如果我检查反射,C类不会用MyAnno注释。如果我将
@MyAnno
添加到C类中,它会工作。这对我来说似乎很奇怪

运动衫 除了我自己的注释之外,我还想使用Java RESTful注释,比如
@GET
@Path(““where/I/am”)
等等。但是它没有,并且带注释的超类的子类没有任何RESTful注释或自己的注释,什么都没有。

我使用的是
org.reflections
,如果带注释的超类不在类型搜索的包路径中,则不会输出这些超类的子类

运动衫 我在2.9.x未运行时使用了它。在2.21中运行良好

更新:从实现的方法中删除
@PathParam

您如何检查C类上的注释?(我假设您不是真的打算编写
类C扩展C
)新的反射(MyServer.class.getPackage().getName()).getTypesAnotatedWith(MyAnno.class)-如果我对子类本身进行注释,这是可行的。(Gradle:compile'org.reflections:reflections:0.9.10')我不知道该库执行什么类型的反射,但只需执行
MyAnno-anno=C.class.getAnnotation(MyAnno.class)
返回注释即可。如果删除
@继承的
,您可以看到差异,前面的代码将导致为空。您的注释中的代码对我来说很好,返回
C
B
。检查你的包裹。是的。。。阅读javadocs有时会让生活更轻松。xD对于查询特定包中所有注释类的库有什么建议吗?