Lombok项目是否适用于Scala?

Seb*_*iot 9 eclipse scala lombok

如果我希望我的Scala项目与Java"兼容",那就是从Java代码调用Scala API(这样非Scala程序员也可以贡献)是否可行,是否可以在Java中使用Project Lombok码?或者他们俩相处得不好?

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

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

Bri*_*Hsu 11

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

如果您在询问是否可以在Scala代码中使用Lombok提供的那些注释,我认为没有意义,因为大多数这些功能都是由Scala itsef提供的.

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

case class Data(name: String, value: Int)
Run Code Online (Sandbox Code Playgroud)

您可以像普通类一样使用Java代码访问它.

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

Data将所有美好的toString,equals,hashcode...等等.


rzw*_*oot 11

scala编辑器部分将"看到"生成的代码就好了.

lombok的大部分内容遵循一些规范或其他,与scala相同.lombok偏离的地方是canEqual并且等于实现,顺便说一下,scala为case类IIRC生成了完全相同的东西,所以即使是兼容的:)

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