私はいくつかの 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は役に立ちません (JDK からのものです)。@XmlRootElement
List
番号2には回避策がありますが、完全ではありません。
- 番号 2 を使用します (生成された HTML ドキュメントで使用可能な例を使用するためだけです - そのリストに含まれる要素の説明)
List
Javadoc 内にあることを指定します(例:@return
単語の後ろ) (HTML タグを介して太字、色、斜体などを使用して強調できます)例えば:
/** * ... * @return <strong><font color="blue">List<MyType></font></strong> */
詳細:
- enunciate.version = 1.30.1
- Java 7