與Eclipse中的代碼模板/代碼生成相比,Project Lombok能提供什麼好處嗎?是否有任何缺點(除了包括.jar)?Project Lombok與Eclipse模板/代碼生成
13
A
回答
21
Lombok的一個優點是,一旦你用@Data註釋標註了一個類,當你進行修改時,你永遠不需要重新生成代碼。例如,如果添加一個新字段,@Data將自動在equals,hashCode和toString方法中包含該字段。使用Eclipse生成的方法時,您需要手動進行更改。有些時候,你可能更喜歡手動控制,但在大多數情況下,我預計不會。
4
很少會想到:
- 它是基於註釋,因此沒有良好的傳統項目仍處於前期Java5中(delombok可以幫助)。實際上,它需要使用javac v1.6編譯器。
- 它仍然有侷限性regarding multiple constructors
的依賴問題不應被忽視,雖然,但你已經從你的問題排除它。
12
6
優點:
- 非常容易使用
類是更清潔( '沒有樣板代碼'),尤其是「struct'狀內部類收縮到最低限度:
@Data private class AttrValue { private String attribute; private MyType value; }
這將同時創建getter和setter,toString()和包含這兩個變量的正確hash()/ equals()方法。 與
@Value
的變體創建一個不可變的結構(沒有setters,所有字段final)。- 無需生成/當你改變字段(getter方法,setter方法,的toString,哈希,等於)
- 用手工編碼的方法無干擾刪除代碼:在需要的地方,你自己特定的二傳手只需添加到類。龍目島跳過這一點,併產生一切
缺點:
- 沒有名字的重構,但:以上重命名
value
會(還)沒有重命名getValue()
和setValue()
- 月減慢ecplise略有
toString
輸出不如從Apache公共ToStringBuilder輸出不錯
0
Eclipse的EMF提供了一些功能,這是非常方便的,其Lombock還不支持:
- 強大通知mechanims得到了解發生在你的情況下
- 沒有Java反射通用的API。訪問和修改實例時沒有強烈參考類型
- 基於命令和API的編輯
- 模型之間的交叉引用:創建並加載模型樹,EMF通過爲交叉引用創建代理來處理加載。這樣可以節省巨大的域樹
- 還有更多的內存和提升性能...
相關問題
- 1. T4模板和EF與代碼生成
- 2. C代碼生成模板
- 3. Groovy模板 - 代碼生成
- 4. 休眠工具代碼自動生成模板eclipse
- 5. 的Eclipse代碼生成與紙莎草
- 6. Eclipse UML插件與Java代碼生成
- 7. T4模板 - 適合生成C++代碼?
- 8. 什麼是EF模板代碼生成?
- 9. vim動態生成代碼模板
- 10. Web引用代碼生成模板
- 11. 使用T4模板生成代碼
- 12. Eclipse:默認代碼模板
- 13. Eclipse中的代碼生成
- 14. 玩,Eclipse,Java生成項目模板
- 15. Project Lombok @ Slf4j外部配置
- 16. Eclipse代碼模板:插入剪貼板?
- 17. 螞蟻basedir和eclipse .project文件生成
- 18. Lombok如何在現有類上生成代碼?
- 19. Lombok Eclipse Eclipse問題
- 20. 如何使用jooq代碼生成器與maven生成代碼
- 21. Lombok + Eclipse Kepler
- 22. Eclipse代碼模板自動生成trim() - 調用String setter方法參數
- 23. 亞音速MVC模板和代碼生成
- 24. 使用Lombok生成Java getter/setter以獲得帶註釋的代碼
- 25. 代碼生成器與代碼重構
- 26. 簡單的Eclipse代碼模板 - 問題
- 27. 如何爲eclipse編寫代碼模板?
- 28. 插入書籤的Eclipse代碼模板?
- 29. Eclipse中的動態代碼模板?
- 30. 使用COBOL Eclipse代碼模板
目前,只有運行時需要的jar如果使用@SneakyThrows。對於所有其他功能,您只需在構建時使用該jar。 – 2010-04-12 08:35:52
看起來非常像SpringRoo,但更簡單。 – 2010-10-26 15:58:01