Scala中等效的java“Object”类

时间:2015-06-01 00:12:02

标签: java scala types

似乎good reason我需要切换到Scala!所以,请原谅我,如果我的问题看似新手。

scala中的任何似乎是supper class of all types,可能会被视为Java中的 Object 类型。但是输入任何是抽象的,而对象则不是。更具体地说,我不能在scala中编写以下代码(因为类Any是抽象的,无法实例化):

val k:Any = new Any(); 

虽然我可以用Java编写以下代码:

Object k=new Object();

如果我需要具体的等效类型的java对象类型,我应该使用什么?

2 个答案:

答案 0 :(得分:2)

非抽象的

AnyRef 类型似乎等同于Java 对象类(请参阅this

所以以下内容适用于scala:

  val k:AnyRef = new AnyRef();

答案 1 :(得分:0)

AnyRef相当于java的Object。 (Scala统一了类型系统,而不是具有Java所具有的对象/原语区别。因此Any的实例可能是Object / AnyRef的后代,或Java的实例原始类型(例如int)。(或者它也可以是从AnyVal下降的“值类”)。