10

如果我希望我的 Scala 项目与 Java“兼容”,即可以从 Java 代码中调用 Scala API(以便非 Scala 程序员也可以贡献),是否可以在 Java 中使用 Project Lombok代码?还是他们两个相处得不好?

我将使用 Scala IDE 在 Eclipse 中进行开发。

编辑:我真正的意思是:Eclipse 中的 Scala编辑器会看到 Lombok 生成的代码,还是只看到我真正键入的 Java 代码?

4

2 回答 2

13

我不确定你在问什么,因为 Scala 和 Java 在字节码级别是互操作的,它不关心字节码来自哪里。所以我相信您使用 Lombok 注释的 Java 代码仍然可以从 Scala 程序中调用。

如果你问 Lombok 提供的那些注释是否可以在 Scala 代码中使用,我认为没有意义,因为这些功能中的大部分都是由 Scala itef 提供的。

例如,一个类@Data可能是case classScala 中的。

case class Data(name: String, value: Int)

您可以像普通类一样在 Java 代码中访问它。

Data d1 = new Data("someData", 1);  // Using constructor
Data d2 = Data.apply("someData", 1); // Or using factory

并将Data拥有所有精彩的toString, equals, hashcode....等。

于 2011-12-08T12:53:24.307 回答
12

scala 编辑器部分将“看到”生成的代码就好了。

lombok 所做的大部分工作都遵循一些规范或其他规范,与 scala 相同。lombok 偏离的地方是 canEqual 和 equals 实现,顺便说一下,这与 scala 为案例类 IIRC 生成的东西完全相同,所以即使这样也是兼容的:)

免责声明:我是项目 lombok 的核心贡献者。

于 2011-12-20T00:48:42.107 回答