透過反射來取得Java方法參數名稱
在Java中,方法參數名稱預設是無法存取的,這就產生了一個問題:是否可以使用反射來取得它們.
帶有參數反射的Java 8 解
在Java 8 之前,透過反射存取參數名稱是不可行的。然而,隨著 Java 8 中參數反射的引入,這成為可能。以下程式碼示範如何取得參數名稱:
import java.lang.reflect.Method; import java.lang.reflect.Parameter; public class ParameterReflection { public static void main(String[] args) { Class> clazz = Whatever.class; Method[] methods = clazz.getDeclaredMethods(); for (Method method : methods) { if (method.getName().equals("aMethod")) { Parameter[] parameters = method.getParameters(); for (Parameter parameter : parameters) { System.out.println(parameter.getName()); } break; } } } }
在此範例中,Whatever 類別包含一個aMethod 方法,該方法具有名為的整數參數aParam.透過使用method.getParameters() 方法,您可以檢索代表該方法的每個參數及其名稱的Parameter 物件陣列。
編譯器標誌(-parameters)
這很重要需要注意的是,Java 8 需要啟用編譯器標誌 -parameters 以使參數名稱在運行時可存取。在 Maven 專案中,可以將此標誌新增至
<compilerargument>-parameters</compilerargument>
或者,在高於3.6.2 的Java 8 版本編譯器中,您可以在
<parameters>true</parameters>
結論
隨著Java 8中參數反射的引入,透過反射取得方法參數名稱現在是可行的。透過使用 Parameter 類別和 -parameters 編譯器標誌,您可以在執行時間存取參數名稱。
以上是如何在 Java 8 中使用反射檢索 Java 方法參數名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

深入Java:值得探索的虛擬機世界很多Java開發者在掌握了基礎語法和常用框架後,都希望進一步提升自己的技術�...

EasyExcel模板填充合併單元格時的常見問題在使用EasyExcel進行Excel...

系統對接中的字段映射挑戰及其解決方案在系統對接過程中,經常會遇到需要將一個系統的接口字段映射到另一...

SpringBoot應用中PgJDBC連接池拋出PSQLException:ERROR:cancelingstatementduetouserrequest異常在使用SpringBoot MyBatis-Plus ...

如何優化熱點數據的篩選與同步?在處理大規模數據同步時,如何有效篩選熱點數據成為一個關鍵問題。假設存...

Java虛擬線程與多線程並行:兼容性挑戰在Java編程中,虛擬線程的引入為開發者提供了更高效的並發處理方式。 �...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。