我有一些 REST 服务(使用和生成应用程序/json)并@TypeHint
用于生成文档。
现在我有这样的事情:
import javax.ws.rs.core.Response;
...
@Path("/path")
public class MyClass {
@GET
@TypeHint(MyResponse.class)
public Response getIt() {
MyResponse resp = ... ;
return MyBuilder.build(resp);
}
}
但是MyResponse
是一个包装List<MyType>
。
我的build
方法MyResponse
看起来像这样:
public static Response build(Serializable payload) {
return Response.ok(msr).header(...).build();
}
我想直接使用List<MyType>
而不是MyResponse
. TypeHint
在以下代码中使用哪种方法最好?
@GET
@TypeHint(/* TODO */)
public Response getIt() {
List<MyType> myList = ... ;
return MyBuilder.build(myList);
}
我在考虑以下选项:
@TypeHint(List.class)
@TypeHint(MyType.class)
@TypeHint(List<MyType>.class)
-> 不幸的是,由于 Java 类型擦除,这不起作用。
问题:
3 号有有效的替代方案吗?
即使类型是 a List
,数字1也没有用,因为我自己的类型必须使用注释@XmlRootElement
并且是不可List
更改的(它来自 JDK)。
数字2有一个解决方法,但它不是很完美:
- 使用数字 2(只是为了在生成的 HTML 文档中有一个可用的示例 - 对该列表中包含的元素的描述)
在 Javadoc 中指定它是 a
List
(例如:在@return
单词之后)(可以通过 HTML 标记使用粗体、颜色、斜体等强调)例如:
/** * ... * @return <strong><font color="blue">List<MyType></font></strong> */
细节:
- 发音.version = 1.30.1
- 爪哇 7