パッケージ jakarta.ws.rs.core
クラス GenericEntity<T>
- java.lang.ObjectSE
-
- jakarta.ws.rs.core.GenericEntity<T>
- 型パラメーター:
T
- レスポンスエンティティインスタンス型
public class GenericEntity<T> extends ObjectSE
ジェネリクス型T
のメッセージエンティティを表します。通常、型消去はジェネリクス型情報を削除します。たとえば、
List<String>
型のエンティティを含むResponse
インスタンスには、実行時に生のList<?>
が含まれているように見えます。適切なMessageBodyWriter
を選択するためにジェネリクス型が必要な場合、このクラスを使用してエンティティをラップし、そのジェネリクス型をキャプチャーできます。インスタンスを作成するには、次の 2 つの方法があります。
- このクラスの(通常は匿名の)サブクラスを作成します。これにより、型消去にもかかわらず、実行時に型情報を取得できます。例: 次のコードは、適切な
MessageBodyWriter
を選択するために実行時にジェネリクス型が使用可能になる型List<String>
のエンティティを含むResponse
を作成する方法を示しています。List<String> list = new ArrayList<String>(); GenericEntity<List<String>> entity = new GenericEntity<List<String>>(list) { }; Response response = Response.ok(entity).build();
ここで、
list
はレスポンス本文を形成するList<String>
のインスタンスであり、エンティティはGenericEntity
の匿名サブクラスのインスタンスです。 - エンティティにジェネリクス型情報を提供して、インスタンスを直接作成します。たとえば、次のコードは、リフレクションを介して呼び出されたメソッドの結果を含むレスポンスを作成する方法を示しています。
Method method = ...; GenericEntity<Object> entity = new GenericEntity<Object>( method.invoke(...), method.getGenericReturnType()); Response response = Response.ok(entity).build();
上記はメソッドの戻り値の型からジェネリクス型を取得します。生の型はエンティティのクラスです。
- 導入:
- 1.0
- 作成者:
- Paul Sandoz, Marc Hadley
- 関連事項:
GenericType
コンストラクターのサマリー
コンストラクター 修飾子 コンストラクター 説明 protected
GenericEntity(T entity)
新しいジェネリクスエンティティを構築します。GenericEntity(T entity, TypeSE genericType)
ジェネリクス型情報を提供して、GenericEntity の新しいインスタンスを作成します。
コンストラクターの詳細
GenericEntity
protected GenericEntity(T entity)
新しいジェネリクスエンティティを構築します。型パラメーターから表現されたクラスを派生させます。このコンストラクターは保護されていることに注意してください。ユーザーは上記のように(通常は匿名の)サブクラスを作成する必要があります。- パラメーター:
entity
- エンティティインスタンスは、null
であってはなりません。- 例外:
IllegalArgumentExceptionSE
- エンティティがnull
の場合。
GenericEntity
public GenericEntity(T entity, TypeSE genericType)
ジェネリクス型情報を提供して、GenericEntity の新しいインスタンスを作成します。エンティティは、指定されたジェネリクス型の変数に割り当て可能である必要があります。entity
がArrayList<String>
のインスタンスである場合、genericType
は同じであるか、List<String>
のような同じジェネリクス型を持つArrayList
のスーパークラスである可能性があります。- パラメーター:
entity
- エンティティインスタンスは、null
であってはなりません。genericType
- ジェネリクス型は、null
であってはなりません。- 例外:
IllegalArgumentExceptionSE
- エンティティが指定されたジェネリクス型の変数に代入できない場合、またはエンティティまたは genericType が null の場合。
メソッドの詳細
getRawType
public final ClassSE<?> getRawType()
囲まれたエンティティの生の型を取得します。これはインスタンスの raw 型であり、type パラメーターの raw 型ではないことに注意してください。つまり導入部の例では、raw 型はList
ではなくArrayList
です。- 戻り値:
- 生の型。
getType
public final TypeSE getType()
基になるType
インスタンスを取得します。これは、囲まれたインスタンスではなく、type パラメーターから派生していることに注意してください。つまり導入部の例では、型はArrayList<String>
ではなくList<String>
です。- 戻り値:
- 型
getEntity
public final T getEntity()
同封のエンティティを取得します。- 戻り値:
- 囲まれたエンティティ。