项目Lombok与Eclipse模板/代码生成

时间:2010-04-11 10:14:27

标签: eclipse code-generation lombok

与Eclipse中的代码模板/代码生成相比,Project Lombok能否带来任何好处?是否有任何缺点(除了包括.jar)?。

5 个答案:

答案 0 :(得分:21)

Lombok的一个优点是,一旦你用@Data注释注释了一个类,你就不需要在进行更改时重新生成代码。例如,如果添加新字段,@ Data将自动在equals,hashCode和toString方法中包含该字段。使用Eclipse生成的方法时,您需要手动进行更改。有些时候,你可能更喜欢手动控制,但在大多数情况下,我希望不会。

答案 1 :(得分:12)

Lombok的优势在于代码实际上并不存在 - 即类更具可读性且不会混乱。

答案 2 :(得分:6)

优点:

  • 非常好用
  • 类更清晰('没有样板代码'),特别是'类似结构'的内部类缩小到最低限度:

    @Data private class AttrValue { private String attribute; private MyType value; }

    这将创建getter和setter,toString()和正确的hash()/ equals()方法,包括两个变量。 @Value的变体创建了一个不可变结构(没有setter,所有字段都是final)。

  • 更改字段时无需生成/删除代码(getter,setter,toString,hash,equals)
  • 不干扰手动编码方法:只需将您自己的特定设定器添加到需要的类中。龙目岛跳过此并生成其他所有内容

缺点:

  • 没有名称重构,但是:重命名value以上将不会(还)重命名getValue()setValue()
  • 可能会慢慢放慢ecplise
  • toString输出不如例如来自apache commons的ToStringBuilder

答案 3 :(得分:4)

很少有人想到:

  • 它基于注释,因此对于仍然在Java5之前的遗留项目没有任何好处(delombok可以提供帮助)。实际上,它需要使用javac v1.6编译器。
  • 它仍有限制regarding multiple constructors

依赖性问题不容忽视,但您已将其排除在问题之外。

答案 4 :(得分:0)

Eclipse EMF提供了一些非常方便的功能,Lombock还不支持这些功能:

  • 强大的通知机制,让您了解实例中的变化
  • 没有java反射的通用API。访问和修改实例,但没有对类型的强引用
  • 基于命令和API的编辑
  • 模型之间的交叉引用:创建和加载模型树,EMF通过为交叉引用创建代理来处理加载。这样可以节省大量域树的内存并提高性能
  • 还有更多......