我有一個具有大約30個變量的操作類。這些領域的獲取者和設置者弄亂了我的代碼並添加了不必要的行。有沒有辦法反映所有的private
字段,並使它們對Struts「可見」?Struts 2中的反射
2
A
回答
0
聽起來像是對我錯誤的做法。
在Java的OO和封裝概念中,獲取器和設置器是非常基礎的。如果您不喜歡編寫 getters和setter或者使用像Lombok(http://projectlombok.org/index.html)這樣的框架,或者選擇其他語言,例如Gradle。
大多數(如果不是全部的話)Java代碼使用它們,所以也許你認爲它們搞砸了代碼有點不對。一個好的IDE應該可以幫助你擺脫困境。
哦,反射增加了大量的性能開銷,完全不是爲了短路訪問私有成員。
0
實際上你並不需要getter和setter來讓OGNL工作。但不要這樣做。
如果您的擔心是更大類的「開銷」,那麼創建一個封裝視圖狀態並僅公開該對象的對象。您也可以通過ModelDriven
界面來完成此操作;一些注意事項適用。
獲得者和設置者在Java中是相同的課程。習慣它。使用自動摺疊簡單的getXxx
/setXxx
方法的IDE。開始使用演示者模式來封裝視圖狀態並將其用作Web和業務域對象之間的翻譯層。
+0
我的實體是不可變的,我猜ModelDriven接口不適用於我。但是我可以寫一個DTO對象,這會是一個好方法嗎? – 2014-12-03 22:57:38
相關問題
- 1. Struts-Struts 2中的I18n
- 2. RAD中的Struts 2
- 3. Swift 2反射錯誤
- 4. 反射在迅速2
- 5. 將arraylist對象映射到struts 2中的下拉列表(s:select)
- 6. 爲Struts 2中的特定操作映射配置SiteMesh?
- 7. 從非struts 2 action訪問struts 2 jsp
- 8. Struts 2中的SessionAware設計
- 9. Struts 1.x vs Struts 2.x
- 10. Struts 2 - struts標記錯誤
- 11. 運行Struts 1和Struts 2
- 12. 磚的Struts 2 NoSuchDefinitionException
- 13. Struts 1和Struts 2的區別?
- 14. GLSL中的反射映射
- 15. Struts 2 dispatcher
- 16. Dropdown struts 2
- 17. Struts 2 subaction
- 18. 使用反射的Azure Table SDK 2 EntityResolver
- 19. 驗證問題Struts中2
- 20. 在Struts 2中處理ActionForward
- 21. Struts 2驗證問題 - 未映射util.js和validation.js的動作
- 22. 沒有爲名稱空間struts 2映射的動作
- 23. 在Struts 2中使用servlet 2
- 24. asp.net中的反射
- 25. Java中的反射
- 26. Android中的反射?
- 27. python中的反射
- 28. Netbeans支持struts 2?
- 29. 升級struts 2 jar
- 30. Struts 2會話值
您想在哪裏使用此功能?在表示層(屏幕)上? – 2014-12-03 09:00:26
是@Buhake Sindi。 Struts似乎只能通過getter和setter來訪問變量,但這不是好的做法 – 2014-12-03 11:10:50
@VladMatvei它*是一種在Java Beans中使用getter和setter的好習慣,但您的問題是額外序號+1。 – 2014-12-03 11:18:01