ホームページ >バックエンド開発 >C++ >ランタイム型引数を使用して汎用 Java メソッドを呼び出すにはどうすればよいですか?

ランタイム型引数を使用して汎用 Java メソッドを呼び出すにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-30 20:25:10184ブラウズ

How Can I Invoke a Generic Java Method with Runtime Type Arguments?

実行時型引数を使用したジェネリック メソッドの呼び出し

問題:

ジェネリック メソッドを動的に呼び出したいと考えています。実行時に型引数を指定します。ただし、Java では、ジェネリック メソッド呼び出しで型引数を直接解決することはできません。

解決策:

これを実現するには、Java を使用します。リフレクション:

// Get the generic method
Method<T> method = MyTestClass.class.getMethod("myGenericMethod");

// Create a type array for the type arguments
Type[] typeArguments = { new TypeReference<T>() {}.getType() };

// Make the generic method specific
Method<T> specificMethod = method.makeGenericMethod(typeArguments);

// Invoke the specific method with an instance and parameters
T result = specificMethod.invoke(myInstance, parameters);

説明:

  1. ジェネリック メソッドの取得: getMethod() を使用して、 class.
  2. 型配列の作成:ジェネリック メソッドの型引数を保持する Type[] 配列を作成します。
  3. 特定のメソッドを生成する: makeGenericMethod() を使用して、指定された型引数を持つ新しいメソッド インスタンスを作成します。
  4. 呼び出し: インスタンスを指定して invoke() を使用して特定のメソッドを呼び出します。パラメータ。

追加メモ:

  • newInstance() を使用して、インターフェイスからジェネリック型の新しいインスタンスを作成できます。
  • リフレクションにより、実行時に型引数を動的に解決できます。
  • ジェネリックスが提供するコンパイル時の型チェックですが、リフレクションにより動的シナリオでの柔軟性が可能になります。

以上がランタイム型引数を使用して汎用 Java メソッドを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。