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();
上記はメソッドの戻り値の型からジェネリクス型を取得します。生の型はエンティティのクラスです。
GenericType
修飾子 | コンストラクターと説明 |
---|---|
protected | GenericEntity(T entity) 新しいジェネリクスエンティティを構築します。 |
| GenericEntity(T entity, TypeSE genericType) ジェネリクス型情報を提供して、GenericEntity の新しいインスタンスを作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
boolean | equals(ObjectSE obj) |
T | getEntity() 同封のエンティティを取得します。 |
ClassSE<?> | getRawType() 囲まれたエンティティの生の型を取得します。 |
TypeSE | getType() 基になる Type インスタンスを取得します。 |
int | hashCode() |
StringSE | toString() |
cloneSE, finalizeSE, getClassSE, notifySE, notifyAllSE, waitSE, waitSE, waitSE
protected GenericEntity(T entity)
entity
- エンティティインスタンスは、null
であってはなりません。IllegalArgumentExceptionSE
- エンティティが null
の場合。public GenericEntity(T entity, TypeSE genericType)
entity
が ArrayList<String>
のインスタンスである場合、genericType
は同じであるか、List<String>
のような同じジェネリクス型を持つ ArrayList
のスーパークラスである可能性があります。entity
- エンティティインスタンスは、null
であってはなりません。genericType
- ジェネリクス型は、null
であってはなりません。IllegalArgumentExceptionSE
- エンティティが指定されたジェネリクス型の変数に代入できない場合、またはエンティティまたは genericType が null の場合。public final ClassSE<?> getRawType()
List
ではなく ArrayList
です。public final TypeSE getType()
Type
インスタンスを取得します。これは、囲まれたインスタンスではなく、type パラメーターから派生していることに注意してください。つまり導入部の例では、型は ArrayList<String>
ではなく List<String>
です。public final T getEntity()
public int hashCode()
ObjectSE
の hashCodeSE
public StringSE toString()
ObjectSE
の toStringSE
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.