実装クラスからジェネリックインターフェイスの型パラメーターを取得するにはどうすればよいですか?

ヘクター

私はこのインターフェースを持っています:

public interface EventHandler<T extends Event> {
    void handle(T event);
}

そしてそれを実装するこのクラス:

public class MyEventHandler implements EventHandler<MyEvent> {
    @Override
    public void handle(MyEvent event) {
        //do something
    }
}

このクラスでは、TパラメータはMyEvent、です。これは、の具体的な実装ですEventリフレクションを使用してこれを取得するにはどうすればよいですか?

ルネリンク

T汎用インターフェースでのタイプを解決します。例えば

public interface SomeInterface<T> {
}

public class SomeImplementation implements SomeInterface<String> {

    public Class getGenericInterfaceType(){
        Class clazz = getClass();
        ParameterizedType parameterizedType = (ParameterizedType) clazz.getGenericInterfaces()[0];
        Type[] typeArguments = parameterizedType.getActualTypeArguments();
        Class<?> typeArgument = (Class<?>) typeArguments[0];
        return typeArgument;
    }
}

public static void main(String[] args) {
    SomeImplementation someImplementation = new SomeImplementation();
    System.out.println(someImplementation.getGenericInterfaceType());
}

PS:acutalTypeArgumentsはタイプであることに注意してくださいTypeであってはなりませんClassあなたの場合、型定義がであるため、それはクラスですEventHandler<MyEvent>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

インターフェイスを動的に実装するクラスからメソッドを取得するにはどうすればよいですか?

分類Dev

ジェネリック型のインターフェースを実装するにはどうすればよいですか?

分類Dev

インターフェイスの実装クラスのタイプパラメータを設定するにはどうすればよいですか?

分類Dev

パラメータのないジェネリック型のクラスを取得するにはどうすればよいですか?

分類Dev

ジェネリックインターフェースのすべての実装をautofacに登録するにはどうすればよいですか?

分類Dev

インターフェイスを実装するクラスにあるメソッドを、そのインターフェイスのタイプのオブジェクトで呼び出すにはどうすればよいですか?

分類Dev

インターフェイスを実装するクラスのリストを取得するにはどうすればよいですか?

分類Dev

ジェネリック型パラメーターを持つトレイトをボックス化するにはどうすればよいですか?

分類Dev

インターフェイスからそのインターフェイスを実装するクラスへの列挙型を取得するにはどうすればよいですか?

分類Dev

ジェネリックインターフェイスの制約があるジェネリッククラスを実装するにはどうすればよいですか?

分類Dev

ジェネリック型定義とランタイム型パラメーターから実行時にJava型オブジェクトを構築するにはどうすればよいですか?

分類Dev

それを実装する具象型へのインターフェースによって表される「ジェネリック」オブジェクトのリストからキャストへの(List <?>)とはどういう意味ですか?

分類Dev

クラスにインターフェイスを実装し、別のクラスから継承させるにはどうすればよいですか?

分類Dev

C#でオープンジェネリックの型パラメーターの数を取得するにはどうすればよいですか?

分類Dev

デコレータを使用してクラスジェネリック型の実行時型を取得するにはどうすればよいですか?

分類Dev

2つのインターフェイスを実装するクラスから2つのインターフェイスで定義されたパラメータとメソッドにアクセスするにはどうすればよいですか?

分類Dev

サブクラスのメソッド(パラメーター)に、実装されたインターフェースで定義された注釈があるかどうかを確認するにはどうすればよいですか?

分類Dev

ジェネリック型のインターフェイスとしてジェネリック型のクラスインスタンスを返すにはどうすればよいですか?

分類Dev

ジェネリック型のインターフェイスとしてジェネリック型のクラスインスタンスを返すにはどうすればよいですか?

分類Dev

実装クラスからインターフェイスを取得するにはどうすればよいですか?

分類Dev

基本クラスでジェネリックを使用しながら、あるインターフェイスから別のインターフェイスに関数を適用するにはどうすればよいですか?

分類Dev

ジェネリックインターフェイスのインターフェイス実装を取得するにはどうすればよいですか?

分類Dev

kotlinpoetを使用してジェネリックインターフェイスを実装するクラスを拡張するクラスを生成するにはどうすればよいですか?

分類Dev

Delphiでジェネリックパラメータとして渡されたインターフェイスのGUIDを取得するにはどうすればよいですか?

分類Dev

クラスパスでインターフェースのすべての実装を見つけるにはどうすればよいですか?

分類Dev

ジェネリックスーパークラスの型パラメータをミックスインで知るにはどうすればよいですか

分類Dev

基礎となるタイプのジェネリックインターフェイスを取得するにはどうすればよいですか?

分類Dev

Kotlinでジェネリック型パラメーターの指定をスキップするにはどうすればよいですか?

分類Dev

ジェネリックパラメーターがインターフェイスを実装する列挙型であることをどのように要求できますか?

Related 関連記事

  1. 1

    インターフェイスを動的に実装するクラスからメソッドを取得するにはどうすればよいですか?

  2. 2

    ジェネリック型のインターフェースを実装するにはどうすればよいですか?

  3. 3

    インターフェイスの実装クラスのタイプパラメータを設定するにはどうすればよいですか?

  4. 4

    パラメータのないジェネリック型のクラスを取得するにはどうすればよいですか?

  5. 5

    ジェネリックインターフェースのすべての実装をautofacに登録するにはどうすればよいですか?

  6. 6

    インターフェイスを実装するクラスにあるメソッドを、そのインターフェイスのタイプのオブジェクトで呼び出すにはどうすればよいですか?

  7. 7

    インターフェイスを実装するクラスのリストを取得するにはどうすればよいですか?

  8. 8

    ジェネリック型パラメーターを持つトレイトをボックス化するにはどうすればよいですか?

  9. 9

    インターフェイスからそのインターフェイスを実装するクラスへの列挙型を取得するにはどうすればよいですか?

  10. 10

    ジェネリックインターフェイスの制約があるジェネリッククラスを実装するにはどうすればよいですか?

  11. 11

    ジェネリック型定義とランタイム型パラメーターから実行時にJava型オブジェクトを構築するにはどうすればよいですか?

  12. 12

    それを実装する具象型へのインターフェースによって表される「ジェネリック」オブジェクトのリストからキャストへの(List <?>)とはどういう意味ですか?

  13. 13

    クラスにインターフェイスを実装し、別のクラスから継承させるにはどうすればよいですか?

  14. 14

    C#でオープンジェネリックの型パラメーターの数を取得するにはどうすればよいですか?

  15. 15

    デコレータを使用してクラスジェネリック型の実行時型を取得するにはどうすればよいですか?

  16. 16

    2つのインターフェイスを実装するクラスから2つのインターフェイスで定義されたパラメータとメソッドにアクセスするにはどうすればよいですか?

  17. 17

    サブクラスのメソッド(パラメーター)に、実装されたインターフェースで定義された注釈があるかどうかを確認するにはどうすればよいですか?

  18. 18

    ジェネリック型のインターフェイスとしてジェネリック型のクラスインスタンスを返すにはどうすればよいですか?

  19. 19

    ジェネリック型のインターフェイスとしてジェネリック型のクラスインスタンスを返すにはどうすればよいですか?

  20. 20

    実装クラスからインターフェイスを取得するにはどうすればよいですか?

  21. 21

    基本クラスでジェネリックを使用しながら、あるインターフェイスから別のインターフェイスに関数を適用するにはどうすればよいですか?

  22. 22

    ジェネリックインターフェイスのインターフェイス実装を取得するにはどうすればよいですか?

  23. 23

    kotlinpoetを使用してジェネリックインターフェイスを実装するクラスを拡張するクラスを生成するにはどうすればよいですか?

  24. 24

    Delphiでジェネリックパラメータとして渡されたインターフェイスのGUIDを取得するにはどうすればよいですか?

  25. 25

    クラスパスでインターフェースのすべての実装を見つけるにはどうすればよいですか?

  26. 26

    ジェネリックスーパークラスの型パラメータをミックスインで知るにはどうすればよいですか

  27. 27

    基礎となるタイプのジェネリックインターフェイスを取得するにはどうすればよいですか?

  28. 28

    Kotlinでジェネリック型パラメーターの指定をスキップするにはどうすればよいですか?

  29. 29

    ジェネリックパラメーターがインターフェイスを実装する列挙型であることをどのように要求できますか?

ホットタグ

アーカイブ