首頁 >後端開發 >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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn