パッケージ 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 つの方法があります。

  1. このクラスの(通常は匿名の)サブクラスを作成します。これにより、型消去にもかかわらず、実行時に型情報を取得できます。例: 次のコードは、適切な 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 の匿名サブクラスのインスタンスです。

  2. エンティティにジェネリクス型情報を提供して、インスタンスを直接作成します。たとえば、次のコードは、リフレクションを介して呼び出されたメソッドの結果を含むレスポンスを作成する方法を示しています。
     Method method = ...;
     GenericEntity<Object> entity = new GenericEntity<Object>(
        method.invoke(...), method.getGenericReturnType());
     Response response = Response.ok(entity).build();
     

    上記はメソッドの戻り値の型からジェネリクス型を取得します。生の型はエンティティのクラスです。

導入:
1.0
作成者:
Paul Sandoz, Marc Hadley
関連事項:
  • コンストラクターの概要

    コンストラクター
    修飾子
    コンストラクター
    説明
    protected
    新しいジェネリクスエンティティを構築します。
    GenericEntity(T entity, TypeSE genericType)
    ジェネリクス型情報を提供して、GenericEntity の新しいインスタンスを作成します。
  • 方法の概要

    修飾子と型
    メソッド
    説明
    boolean
    final T
    同封のエンティティを取得します。
    final ClassSE<?>
    囲まれたエンティティの生の型を取得します。
    final TypeSE
    基になる Type インスタンスを取得します。
    int

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, waitSE, waitSE
  • コンストラクターの詳細

    • 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()
      同封のエンティティを取得します。
      戻り値:
      囲まれたエンティティ。
    • equals

      public boolean equals(ObjectSE obj)
      オーバーライド:
      クラス ObjectSEequalsSE 
    • hashCode

      public int hashCode()
      オーバーライド:
      クラス ObjectSEhashCode 
    • toString

      public StringSE toString()
      オーバーライド:
      クラス ObjectSEtoString