如果我希望我的Scala项目与Java“兼容”,那么从Java代码调用Scala API(这样非Scala程序员也可以贡献)是否可行,是否可以使用Project Lombok在Java代码中?或者他们俩相处得不好?
我将使用Scala IDE在Eclipse中进行开发。
编辑:我真正的意思是:Eclipse中的Scala 编辑器会看到Lombok生成的代码,还是我真正输入的Java代码?答案 0 :(得分:10)
我不确定你在问什么,因为Scala和Java是字节码级别的互操作,它不关心字节码的来源。所以我相信使用Lombok注释的Java代码仍然可以从Scala程序中调用。
如果您在询问是否可以在Scala代码中使用Lombok提供的那些注释,我认为没有意义,因为大多数这些功能都是由Scala itsef提供的。
例如,带有@Data
的课程可能是Scala中的case class
。
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
....等等。
答案 1 :(得分:9)
scala编辑器部分将“看到”生成的代码就好了。
lombok的大部分内容遵循某些规范或其他规则,与scala相同。 lombok偏离的地方是canEqual并且等于实现,顺便说一下,scala为case类IIRC生成的完全相同的东西,所以即使是兼容的:)
免责声明:我是项目lombok的核心贡献者。