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 

您想获得IOneITwo。为此,只需使用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 创建一个新项目

Jersey jax.rs 客户端 2.5 遵循从 HTTP 到 HTTPS 的重定向

如何将PNG图像从Jersey REST服务方法返回到浏览器