与 Eclipse 中的代码模板/代码生成相比,Project Lombok是否提供任何好处?是否有任何缺点(除了包括 .jar)?
问问题
1719 次
5 回答
21
Lombok 的一个优点是,一旦您使用 @Data 批注对类进行了批注,就无需在进行更改时重新生成代码。例如,如果您添加一个新字段,@Data 会自动将该字段包含在 equals、hashCode 和 toString 方法中。使用 Eclipse 生成的方法时,您需要手动进行更改。有时,您可能更喜欢手动控制,但在大多数情况下,我预计不会。
于 2010-04-11T11:15:32.033 回答
12
Lombok 的优势在于代码实际上并不存在——即类更具可读性并且不混乱。
于 2010-04-11T10:54:42.337 回答
6
优点:
- 非常容易使用
类更简洁(“没有样板代码”),尤其是类似于“结构”的内部类缩小到最低限度:
@Data private class AttrValue { private String attribute; private MyType value; }
这将创建 getter 和 setter、toString() 和正确的 hash() / equals() 方法,包括这两个变量。变体
@Value
创建了一个不可变的结构(没有设置器,所有字段都是最终的)。- 更改字段(getter、setter、toString、hash、equals)时无需生成/删除代码
- 不干扰手动编码的方法:只需将您自己的特定设置器添加到需要的类中。Lombok 跳过此并生成其他所有内容
缺点:
- 还没有名称重构:
value
上面的重命名不会(还)重命名getValue()
和setValue()
- 可能会稍微减慢 ecplise
toString
输出不如 apache commons 中的 ToStringBuilder 好
于 2010-11-03T10:16:10.937 回答
4
很少有人想到:
- 它是基于注解的,因此对于仍处于 Java5 之前的遗留项目没有好处(delombok可以提供帮助)。实际上,它需要使用 javac v1.6 编译器。
- 它仍然对多个构造函数有限制
不过,依赖性问题不容忽视,但您已将其排除在问题之外。
于 2010-04-11T10:50:44.523 回答
1
Eclipse EMF 提供了一些 Lombock 尚不支持的非常方便的特性:
- 强大的通知机制,让您了解实例的变化
- 没有 java 反射的通用 API。无需强引用类型即可访问和修改实例
- 基于命令和 API 的编辑
- 模型之间的交叉引用:创建和加载模型树,EMF 通过为交叉引用创建代理来处理加载。这在巨大的域树中节省了内存并提高了性能
- 以及更多...
于 2015-02-11T13:30:07.393 回答