Cosminexus V9 アプリケーションサーバ Webサービス開発ガイド

[目次][用語][索引][前へ][次へ]

17.1.4 パラメタ型

インジェクション用アノテーションを指定できるパラメタ型の一覧,およびDefaultValueアノテーションを組み合わせて使用できるかどうかを次の表に示します。

表17-8 各アノテーションをサポートしているパラメタの型

項番 データ型 アノテーション
PathParam QueryParam MatrixParam CookieParam HeaderParam FormParam Context
1 プリミティブ int ※1 ※1 ※2 ※1 ※1 ×
2 short ※1 ※1 ※2 ※1 ※1 ×
3 long ※1 ※1 ※2 ※1 ※1 ×
4 float ※1 ※1 ※2 ※1 ※1 ×
5 double ※1 ※1 ※2 ※1 ※1 ×
6 char ※1 ※1 ※2 ※1 ※1 ×
7 byte ※1 ※1 ※2 ※1 ※1 ×
8 boolean ※1 ※1 ※2 ※1 ※1 ×
9 ラッパクラス Integer ※1 ※1 ※2 ※1 ※1 ×
10 Short ※1 ※1 ※2 ※1 ※1 ×
11 Long ※1 ※1 ※2 ※1 ※1 ×
12 Float ※1 ※1 ※2 ※1 ※1 ×
13 Double ※1 ※1 ※2 ※1 ※1 ×
14 Character × × × × × × ×
15 Byte ※1 ※1 ※2 ※1 ※1 ×
16 Boolean ※1 ※1 ※2 ※1 ※1 ×
17 String型の引数を一つ持つコンストラクタを持つ型 ※7 ※1,※7 ※1,※7 ※2,※7 ※1,※7 ※1,※7 ×
18 String型の引数を一つ持ち,その型のインスタンスを返すstaticなvalueOfメソッドを持つ型 ※7 ※1,※7 ※1,※7 ※2,※7 ※1,※7 ※1,※7 ×
19 String型の引数を一つ持ち,その型のインスタンスを返すstaticなfromStringメソッドを持つ型 ※7 ※1,※7 ※1,※7 ※2,※7 ※1,※7 ※1,※7 ×
20 String型の引数を一つ持ち,その型のインスタンスを返すstaticなfromStringメソッドを持つenum型 ※3,※7 ※1,※3,※7 ※1,※3,※7 ※2,※3,※7 ※1,※3,※7 ※1,※3,※7 ×
21 String型の引数を一つ持ち,その型のインスタンスを返すstaticなvalueOfとfromStringメソッドの両方を持つenum以外の型 ※4,※7 ※1,※4,※7 ※1,※4,※7 ※2,※4,※7 ※1,※4,※7 ※1,※4,※7 ×
22 上記以外 × × × × × × ×
23 List<T> TがIntegerの場合 × ×
24 T がShortの場合 × ×
25 TがLongの場合 × ×
26 T がFloatの場合 × ×
27 TがDoubleの場合 × ×
28 Tが Characterの場合 × × × × × × ×
29 TがByteの場合 × ×
30 TがBooleanの場合 × ×
31 TがString型の引数を一つ持つコンストラクタを持つ型の場合 ※7 ※7 ※7 × ※7 ※7 ×
32 TがString型の引数を一つ持ち,その型のインスタンスを返すstaticなvalueOfメソッドを持つ場合 ※7 ※7 ※7 × ※7 ※7 ×
33 TがString型の引数を一つ持ち,その型のインスタンスを返すstaticなfromStringメソッドを持つ場合 ※7 ※7 ※7 × ※7 ※7 ×
34 TがString型の引数を一つ持ち,その型のインスタンスを返すstaticなfromStringメソッドを持つenum型の場合 ※3,※7 ※3,※7 ※3,※7 × ※3,※7 ※3,※7 ×
35 TがString型の引数を一つ持ち,その型のインスタンスを返すstaticなvalueOfメソッドとfromStringメソッドの両方を持つenum以外の型の場合 ※4,※7 ※4,※7 ※4,※7 × ※4,※7 ※4,※7 ×
36 Tが上記以外の場合 × × × × × × ×
37 Set<T>※5 TがIntegerの場合 × ×
38 T がShortの場合 × ×
39 TがLongの場合 × ×
40 T がFloatの場合 × ×
41 TがDoubleの場合 × ×
42 Tが Characterの場合 × × × × × × ×
43 TがByteの場合 × ×
44 TがBooleanの場合 × ×
45 TがString型の引数を一つ持つコンストラクタを持つ型の場合 ※7 ※7 ※7 × ※7 ※7 ×
46 TがString型の引数を一つ持ち,その型のインスタンスを返すstaticなvalueOfメソッドを持つ場合 ※7 ※7 ※7 × ※7 ※7 ×
47 TがString型の引数を一つ持ち,その型のインスタンスを返すstaticなfromStringメソッドを持つ場合 ※7 ※7 ※7 × ※7 ※7 ×
48 TがString型の引数を一つ持ち,その型のインスタンスを返すstaticなvalueOfメソッドとfromStringメソッドの両方を持つenum型の場合 ※3,※7 ※3,※7 ※3,※7 × ※3,※7 ※3,※7 ×
49 TがString型の引数を一つ持ち,その型のインスタンスを返すvalueOfメソッドとfromStringメソッドの両方を持つenum以外の型の場合 ※4,※7 ※4,※7 ※4,※7 × ※4,※7 ※4,※7 ×
50 Tが上記以外の場合 × × × × × × ×
51 Sorted
Set<T>※5,※6
TがIntegerの場合 × × × × × × ×
52 T がShortの場合 × × × × × × ×
53 TがLongの場合 × × × × × × ×
54 T がFloatの場合 × × × × × × ×
55 TがDoubleの場合 × × × × × × ×
56 Tが Characterの場合 × × × × × × ×
57 TがByteの場合 × × × × × × ×
58 TがBooleanの場合 × × × × × × ×
59 TがString型の引数を一つ持つコンストラクタを持つ型の場合 ×※7,※8 ×※7,※9 ×※7,※9 × ×※7,※9 ×※7,※9 ×
60 TがString型の引数を一つ持ち,その型のインスタンスを返すstaticなvalueOfメソッドを持つ場合 ×※7,※8 ×※7,※9 ×※7,※9 × ×※7,※9 ×※7,※9 ×
61 TがString型の引数を一つ持ち,その型のインスタンスを返すstaticなfromStringメソッドを持つ場合 × × × × × × ×
62 TがString型の引数を一つ持ち,その型のインスタンスを返すstaticなvalueOfメソッドとfromStringメソッドの両方を持つenum型の場合 × × × × × × ×
63 TがString型の引数を一つ持ち,その型のインスタンスを返すstaticなvalueOfメソッドとfromStringメソッドの両方を持つenum以外の型の場合 × × × × × × ×
64 Tが上記以外の場合 × × × × × × ×
65 PathSegment × × × × × ×
66 コンテキスト型 UriInfo × × × × × ×
67 HttpHeaders × × × × × ×
68 Request × × × × × ×
69 SecurityContext × × × × × ×
70 Providers × × × × × ×
71 ServletConfig × × × × × ×
72 ServletContext × × × × × ×
73 HttpServletRequest × × × × × ×
74 HttpServletResponse × × × × × ×

(凡例)
○:インジェクション用アノテーションを使用できることを示します。
×:インジェクション用アノテーションを使用できないことを示します。
△:インジェクション用アノテーションを使用できることを示します。ただし,DefaultValueアノテーションを組み合わせて使用しないでください。

注※1
同じ名称のパラメタを複数受け取った場合,JAX-RSエンジンは最初のパラメタの値だけを使用します。

注※2
同じ名称のパラメタを複数受け取った場合,JAX-RSエンジンは最後のパラメタの値をインジェクトします。

注※3
String型の引数を一つ持ち,その型のインスタンスを返すstaticなvalueOfメソッドとstaticなfromStringメソッドの両方を持つ型の場合,JAX-RSエンジンはstaticなfromStringメソッドを使用します。

注※4
String型の引数を一つ持ち,その型のインスタンスを返すstaticなvalueOfメソッドとstaticなfromStringメソッドの両方を持つ型の場合,JAX-RSエンジンはstaticなvalueOfメソッドを使用します。

注※5
enum型以外の場合,Tに指定するクラス,またはその親以上のクラスでは,Java言語の規約に従ってjava.lang.Objectのequals()メソッドとhashCode()メソッドを適切に実装している必要があります。

注※6
enum型以外の場合,Tに指定するクラス,またはその親以上のクラスでは,java.lang.Comparableインタフェースを実装している必要があります。

注※7
valueOfメソッド,fromStringメソッド,およびコンストラクタは,インジェクションの検証のため,初期化時に複数回呼び出されることがあります。

注※8
TがString型の場合は使用できます。ただし,DefaultValueアノテーションを組み合わせて使用しないでください。

注※9
TがString型の場合は使用できます。

上記の表の項番22,項番36,項番50,項番64,および項番65の型に各アノテーションが使用された場合,エラーが発生します(KDJJ10006-E)。ルートリソースクラスではHTTPステータスコード500のHTTPレスポンスが返されます。サブリソースクラスでは,例外マッピングプロバイダで処理できるjava.lang.RuntimeExceptionがスローされます。

また,上記の表の項番14,項番28,項番42,および項番56の型に各アノテーションが使用された場合,例外マッピングプロバイダで処理できるjava.lang.RuntimeExceptionがスローされます。