我是否可以将实现带注释接口的类与仅有注释类型的知识相匹配?

时间:2017-03-23 13:19:01

标签: javaagents byte-buddy

就像在主题中一样。我有我的资源类:

public class HelloWorldEndpoint implements IRest {

    public String sayHello()
    {
      return "Hello world!";
  }

}

和界面:

@Path("/helloworld")
public interface IRest {

    @GET
    @Path("/hello")
    String sayHello();
}

是否可以仅使用@Path类注释来匹配HelloWorldEndpoint中的sayHello()?这是资源类实现的非常具体的示例,但它表明可以在类中没有任何注释的情况下使用REST端点。我已尝试使用 inheritsAnnotation() isAnnotatedWith ()但不幸的是,它没有这样做。我的目标是找到所有资源类:)

1 个答案:

答案 0 :(得分:0)

接口的注释不是根据Java Langauge规范继承的。例如,它们既不会被反射API暴露出来。

为了发现注释,您可以手动遍历类层次结构并查找有问题的注释。这可以通过hasSuperType(isAnnotatedWith(...))实现。请注意,这是一个相当昂贵的匹配条件。