龙目岛计划 与 Eclipse 中的代码模板/代码生成相比有何优势?有什么缺点吗(除了包含 .jar 之外)?

有帮助吗?

解决方案

龙目岛的一个优点是,一旦你已经标注了,说一个班,@Data注释,你永远需要当您更改重新生成代码。例如,如果你添加一个新的领域,@Data会自动包含在平等,的hashCode和toString方法这一领域。你需要使用Eclipse生成的方法时,手动做出的改变。在某些时候,你可能更喜欢手动控制,但在大多数情况下,我希望不是。

其他提示

龙目的优点在于,代码实际上不是有 - 即类是更可读并且不杂乱

优点:

  • 非常容易使用
  • 类更加干净(“没有样板代码”),特别是类似“结构”的内部类缩小到最低限度:

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

    这将创建 getter 和 setter、toString() 以及包含这两个变量的正确 hash() / equals() 方法。该变体与 @Value 创建一个不可变的结构(没有设置器,所有字段都是最终的)。

  • 更改字段(getters、setters、toString、hash、equals)时无需生成/删除代码
  • 不干扰手工编码方法:只需将您自己的特定设置器添加到需要的类中即可。Lombok 跳过这个并生成其他所有内容

缺点:

  • 还没有名称重构:重命名 value 上面不会(还)重命名 getValue()setValue()
  • 5月日食速度略有减慢
  • toString 输出不如 apache commons 的 ToStringBuilder 那样好

很少有人想到:

  • 它基于注释,因此对于仍处于 Java5 之前的遗留项目没有好处(德伦博克 可以帮助)。实际上,它需要使用javac v1.6编译器。
  • 它仍然有局限性 关于多个构造函数

虽然依赖性问题不容忽视,但您已将其从问题中排除。

Eclipse EMF 提供了一些非常方便的功能,但 Lombok 尚不支持:

  • 强大的通知机制,可了解实例的变化
  • 没有 java 反射的通用 API。无需对类型进行强引用即可访问和修改实例
  • 基于命令和 API 的编辑
  • 模型之间的交叉引用:创建并加载模型树,EMF 通过为交叉引用创建代理来处理加载。这可以节省内存并提高大型域树的性能
  • 以及更多...
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top