[关闭]
@runzhliu 2017-12-14T15:16:40.000000Z 字数 580 阅读 781

Scala 与 Java 互操作的问题

Scala 冷知识


在所有 JVM 语言中,Java 和 Scala 的互操作是最完美的。Scala 的语法基本上是 Java 语法的一个超集,从 Scala 调用 Java 通常很简单,反过来调用,则需要了解一些 Scala 特性是如何编码为字节码并满足 JVM 规范的。

1 Scala 使用 Java 名称

Java 名字实际上是 Scala 的关键字的情况下,需要使用反引号来转义。

  1. myScanner.`match`

2 Java 泛型与 Scala 泛型

Scala 使用 Java 类型通常比较容易,然而 Java 调用 Scala 的 API,那就不能调用高阶方法,高阶方法是指那些方法参数或返回值是一个函数。

3 JavaBean 的性质

Scala 支持统一访问原则,因此没有遵循 JavaBean 对字段读写方法的约定。但是有时候确实还是需要 JavaBean 的访问方法,Scala 通过一个可以应用在字段上的标记 @scala.beans.BeanProperty,告诉编译器生成一个 JavaBean 风格的 getter 和 setter 方法。

4 AnyVal 类型与 Java 原生类型

所有的 AnyVal 类型被转换为相应的 Java 原生类型,Unit 被映射为 void 类型。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注