Java和Scala在一起工作得如何?

Java和Scala在一起工作得如何?,java,scala,Java,Scala,在过去的几个月里,我一直在学习Scala,现在我觉得除了解决一些简单的问题外,我还可以开始在实际工作中使用它。我的问题是,这两种方法在一起的效果如何 我有几个Java项目,我现在正在做。在他们身上开始使用scala有多容易?有什么需要注意的地方吗?有没有关于做这件事的教程或资料?如果我想在web项目中使用Scala,如何使用它(lift除外)?欢迎所有想法和建议。一般来说,使用Scala代码中的Java库比使用Java中的Scala内容更容易。之所以会出现这种情况,是因为Scala具有一些高级特

在过去的几个月里,我一直在学习Scala,现在我觉得除了解决一些简单的问题外,我还可以开始在实际工作中使用它。我的问题是,这两种方法在一起的效果如何


我有几个Java项目,我现在正在做。在他们身上开始使用scala有多容易?有什么需要注意的地方吗?有没有关于做这件事的教程或资料?如果我想在web项目中使用Scala,如何使用它(lift除外)?欢迎所有想法和建议。

一般来说,使用Scala代码中的Java库比使用Java中的Scala内容更容易。之所以会出现这种情况,是因为Scala具有一些高级特性,这些特性在java中技术上是可以访问的,但由Scala编译器通过生成各种具有损坏名称的额外类来实现

如果您的“主”程序现在将用java编写,但您希望在scala中实现一些功能或模块,那么您可能应该根据java接口定义模块。然后,让scala代码实现这些接口


希望您很快会发现您非常喜欢scala,以至于您将scala作为主语言,调用旧java代码。

一般来说,我不知道混合语言项目的前提,除非是在非常特殊的情况下。Scala能够(作为一种语言)表达Java所能表达的一切,甚至更多。那么,为什么要费心“将Scala引入Java项目”?为什么不写一个纯Scala项目呢


当我说纯Scala时,我认为您可能希望引用一个用Java编写的JAR文件。但对于绝大多数情况,我认为没有必要在Scala项目中编写Java代码。

我完全同意这些观点:这正是我将两者结合在一起的方式。(即Scala main或Java main通过Java接口与Scala交互,以避免在Java代码中出现名称混乱。)grrrr,“名称混乱”是我写这篇文章时无法想到的技术词汇,因此我使用了术语“有趣的名称”
@BeanProperty
注释可以让java代码更容易访问VAL和VAR。它可以生成java风格的getFoo和setFoo,您可以从java代码中使用它们(尽管scala编译器不允许您从scala代码中访问这些名称)。如果您有一个大型应用程序,那么重写整个内容可能不太实际,因为它是纯scala的,尤其是在企业界。但您可能希望使用Scala编写插入应用程序的新模块。我不认为有人主张在scala出现后编写大量额外的java代码,这是一个公平的观点。我不得不说,我将大多数遗留系统保留为纯Java,但我们没有一个是庞然大物,大多数可能会在3-5年的周期内从头开始重新编写。对于这些类型的系统来说,hemeth是一个很好的词,因为它意味着巨大和可怕:)