簡體   English   中英

使用Java Reflection Bad Practice?

[英]Is using Java Reflection Bad Practice?

我正在為客戶端構建應用程序,我需要能夠通過字符串引用字段值,即用戶使用字符串來定義要更改其值的字段,這是抽象框架的一部分,從技術上講,我不知道他們想要改變的字段的名稱。 當然我可以使用哈希映射來做到這一點,但我正在考慮使用java反射,因為這允許字段保留為對象的字段而不是被編碼為哈希映射的值。 我已經將反射用於我自己的個人工作,但我想知道使用Java反射實際上是不好的做法,我應該堅持使用hashmap方法。

(對於解決所描述的設計問題的任何其他建議也表示贊賞)

謝謝

問題本身就是基於意見的,雖然我相信大多數人會同意你不能只說“反思是壞事”。 有時這是唯一的方法,這就是許多圖書館使用反射的原因。 有時這不是唯一的方法,但解決方法會更糟。 有時它並不是唯一的方式,也不是最簡單的方法,但開發人員對反思思維直接的力量感到非常驚訝。

除了最后一個,有充分的理由將反思視為一種解決方案。

個人反思讓我很傷心,根據我的經驗,幾乎有一種更好的方法。 在你描述的問題中,基於一個字符串設置變量我會考慮使用你的hashmap想法,它會通過字符串鍵引用變量,這看起來就像你正在描述的那樣。 如果你需要能夠引用不存在的值,你還可以包含工廠方法來創建變量,當沒有鍵存在然后添加到地圖,如果你包裝對象然后它們將通過引用傳遞,以避免你的問題描述,但這取決於實現(例如,如果您正在引用基元,則使用Integer類等進行自動裝箱)這將允許更嚴格和定義明確的實現,而不是在那里和任何地方反映值。 為反思偏見道歉! 希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM