使用 Java 反射檢索局部變數名稱
透過反射確定局部變數名稱的能力長期以來一直是內部爭論的話題Java 社群。儘管它在開發工具中很有用,但獲取此類資訊歷來具有挑戰性。
當前限制
從 Java 8 開始,對局部變數名稱的完全存取並不容易實現透過反思。雖然編譯期間的某些最佳化可能會從類別文件中刪除此訊息,但有時它可能會存在。像 ASM 這樣的字節碼工程庫可以提供檢查局部變數表屬性的方法,這些屬性儲存有關類型和名稱的詳細資訊。
最新進展
在 Java 8 中,有限引入了對檢索參數名稱(局部變數的特殊類型)的支援。這些資訊可以透過反射來訪問,取代依賴注入容器中對 @ParameterName 等註釋的需要。
第三方解決方案
超越反射,第三方函式庫可以提供檢索局部變數名稱的替代方法。一種可能的方法涉及修改編譯器標誌以在類別檔案中保留此資訊。但是,此類方法可能不適合所有用例,並且可能需要額外的設定。
以上是Java反射可以檢索局部變數名稱嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!