Hitachi

Cosminexus V11 アプリケーションサーバ 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がスローされます。