首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Java迁移到Scala

将Java迁移到Scala
EN

Stack Overflow用户
提问于 2010-10-19 11:06:03
回答 5查看 3.8K关注 0票数 29

当将现有的Java代码库逐步迁移到Scala时,最需要注意的要点和解决办法是什么?有一个(可能很长的)中间阶段,这两种语言都在使用。

我在想的事情是:

  • 不同的集合层次
  • Java构造Scala不能很好地处理
  • Java中不实用的Scala构造
  • 构建工具
  • 编译顺序
  • 框架中的不变性支持
  • 等。
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-10-19 11:34:41

Scala不喜欢:

  • 内部Java类
  • 静态方法和变量(特别是在超类中)
  • 原始类型

Java不喜欢:

  • Scala对象特性
  • 闭包
  • 演员(除了斯嘉丽·约翰逊和阿克卡演员,因为他们有Java API)
  • 暗示,尤指表现
  • 高级类型构造(高级类型、结构类型、抽象类型)
票数 28
EN

Stack Overflow用户

发布于 2010-10-19 11:33:18

最初(即迁移的第一阶段),我想说,您不希望用难以使用的Java scala构造导出API (接口/公共方法等)。

实际上,我会将其限制为导出任何特定于scala的内容(同样,我在这里讨论的是迁移的第一阶段):

  • scala库类(函数类型、集合等)
  • 高类泛型类型签名
  • 默许

那还剩下什么呢?那么,类的内部(私有方法、字段等)可以转换为使用scala构造和库类。

如果您有任何API(特别是您打算迁移的面向客户的API),我将在Scala中从头开始设计它们;最初使用Java后端。然后,我会慢慢地吃掉中间的代码。

在您强调的要点中,我同意Scala的不变范式和Java的可变范式并不能很好地结合在一起。另外一点,我觉得问题较少。

范式失配的另一个要点是如何转换您拥有的任何并发代码(即使用java.util.concurrent的代码)。当然,这可以按原样进行转换,但问题是是将基于锁定的并发模型替换为基于演员STM的并发模型。在任何一种情况下,这也可能是一个完全的重新设计,而不是转换本身。

票数 8
EN

Stack Overflow用户

发布于 2010-10-19 15:52:51

is 给出了一些关于主题的见解,这是大卫·科普兰( David )的偷偷地将Scala带入您的组织

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3967683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档