Jersey:有可能从 ResourceInfo 获取 getResourceClass() 实现的接口吗?
Posted
技术标签:
【中文标题】Jersey:有可能从 ResourceInfo 获取 getResourceClass() 实现的接口吗?【英文标题】:Jersey: It's possible get from ResourceInfo the Interfaces that getResourceClass() implements? 【发布时间】:2015-12-14 18:41:32 【问题描述】:我在球衣上使用 jax-rs, 我实现了一个 ContainerRequestFilter,并使用 @Context 注释对 ResourceInfo 对象进行了注释。 有没有一种方法不仅可以直接从 ResourceInfo 获得类,而且还可以直接获得其实现的接口?或者还有其他方法可以获取这些信息?
【问题讨论】:
【参考方案1】:我假设你的意思是如果你有
@Path("...")
public class Resource implements IOne, ITwo
您想获得IOne
和ITwo
。为此,只需使用Class#getInterfaces()
public Class<?>[] getInterfaces()
确定该对象所代表的类或接口所实现的接口。
对于以上仍不清楚的任何人,ResourceInfo#getResourceClass
返回资源类的Class
对象。从返回的Class
对象中,可以调用getInterfaces()
Class<?>[] ifaces = resourceInfo.getResourceClass().getInterfaces();
【讨论】:
谢谢@peeskillet,我已经知道这个解决方案,但我会找到一种方法(如果存在)直接从ResourceInfo 或球衣上下文的另一个变量中检索此信息 “或者还有其他方法可以获取这些信息?”。你还在寻找什么?您可以查看 ResourceInfo 的 API,并看到您不会从中获得太多,而是类和方法。你会得到的最好的是resourceInfo.getResourceClass().getinterfaces()
以上是关于Jersey:有可能从 ResourceInfo 获取 getResourceClass() 实现的接口吗?的主要内容,如果未能解决你的问题,请参考以下文章
将自定义数据从 Jersey Filter 服务传递到 Jersey End-Point 服务
Jersey 1 @Inject 迁移到 Jersey 2 停止工作
将使用 jersey 1.x 的 java 代码转换为 jersey 2.x
Jersey 2.x 从Maven Archetype 创建一个新项目