【问题标题】:The java "Object" Class equivalent in ScalaScala 中的 java“Object”类等价物
【发布时间】:2015-08-14 08:29:11
【问题描述】:

对于good reason,我似乎需要切换到 Scala!所以,如果我的问题可能看起来很新手,请原谅。

似乎 scala 中的 Anysupper class of all types 并且可能被视为 Java 中的 Object 类型等价物。但是类型 Any 是抽象的,而 Object 不是。更具体地说,我不能在 scala 中编写以下代码(因为 Any 类是抽象的,无法实例化):

val k:Any = new Any(); 

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

Object k=new Object();

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

【问题讨论】:

  • 为什么需要在 Scala 程序中实例化一个对象?能给我们举个例子吗?
  • 也许他写new MyTrait 失败,现在想写new AnyRef with MyTrait 之类的东西而不是new MyTrait{}

标签: java scala types


【解决方案1】:
非抽象的

AnyRef 类型似乎等同于 Java Object Class(请参阅this

所以以下在 scala 中有效:

  val k:AnyRef = new AnyRef();

【讨论】:

  • 没用。但确实回答了 OP ;)
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-11
    • 2018-01-25
    • 2011-04-17
    • 1970-01-01
    • 2010-11-13
    • 2016-07-05
    • 2021-08-07
    • 2011-12-10
    相关资源
    最近更新 更多