我相信这是不可能的,但我只是想核实一下。
我想做些像.
@Path("/awesome")
public class MyRestResource {
@GET
public void coolQuery(@QueryParam("user") User) {
// ...
}
}
public interface User {
String name();
Address address();
}(请不要评论这个例子.这完全是捏造的,不是我的用例。)
我认为这是不可能的,因为泽西/JAX通常需要一个静态方法public static T valueOf(String input),这显然在接口上是不可能的。
也就是说,有什么办法可以让查询参数成为一个接口呢?如果是,如何指定解析器/解析逻辑?
谢谢
发布于 2014-03-15 17:06:38
根据文档,除了静态valueOf方法之外,还有更多的方法:
valueOf或fromString的静态方法,它接受单个字符串参数(例如,请参见Integer.valueOf(String)和java.util.UUID.fromString(String));javax.ws.rs.ext.ParamConverterProvider JAX扩展SPI实现,该实现返回一个javax.ws.rs.ext.ParamConverter实例,该实例能够对该类型进行"from string“转换。或List<T>、Set<T>或SortedSet<T>,其中T满足以上2或3。结果集合是只读的。在这种情况下,使用ParamConverterProvider的解决方案应该可以工作。
https://stackoverflow.com/questions/22415448
复制相似问题