我有一個具有大約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 2請求映射
- 2. Struts-Struts 2中的I18n
- 3. RAD中的Struts 2
- 4. 錯誤的Struts 2 struts-default.xml
- 5. 反射在迅速2
- 6. JavaFX-2 FXML CSS反射
- 7. Swift 2反射錯誤
- 8. 如何從Struts 2中的選擇標記映射多個值?
- 9. 將arraylist對象映射到struts 2中的下拉列表(s:select)
- 10. 防止在Struts 2中記錄映射的異常
- 11. 爲Struts 2中的特定操作映射配置SiteMesh?
- 12. 從非struts 2 action訪問struts 2 jsp
- 13. Struts 2中的SessionAware設計
- 14. Struts 2中的說明
- 15. HttpServletRequest和Struts中的2
- 16. 陣列中的Struts 2
- 17. Struts 1.x vs Struts 2.x
- 18. 運行Struts 1和Struts 2
- 19. Struts 2 - struts標記錯誤
- 20. 的Struts 1 Struts 2的JSP ::轉換
- 21. 磚的Struts 2 NoSuchDefinitionException
- 22. GLSL中的反射映射
- 23. 使用反射的Azure Table SDK 2 EntityResolver
- 24. Struts 1和Struts 2的區別?
- 25. Dropdown struts 2
- 26. Restful webservices Struts 2
- 27. Autocompleter Struts 2 jQuery
- 28. Struts 2 with Thymeleaf
- 29. struts 2表
- 30. jqGrid with 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