1

可以安全地假设:

因为由于与 Java 的互操作性,scala.AnyRef用一对括号定义了 toString() 和 hashCode() (正如 Martin 在:https ://groups.google.com/forum/#!topic/scala-language/RlV9O1RDmis 中所建议的那样),

Scala 标准库中作为 scala.AnyRef 后代的每个类都使用一对括号定义 toString() 和 hashCode() ?

换句话说,我可以相信标准库的开发人员在使用 toString() 和 hashCode() 作为 AnyRef 的后代类方面是一致的吗?

编辑 - 将问题更改为仅询问 AnyRef 的后代类

4

1 回答 1

4

由于您只需要一个反例,因此您可以

object Int extends AnyValCompanion {
  ...
  override def toString = "object scala.Int"
}

但是"toString[^(]"在标准库源代码上的 grepping 会出现数百个其他的。

请注意,使用无参数列表覆盖具有空参数列表的方法的能力已明确添加到 Scala 2.0 中的 Scala 语言规范中。

于 2012-09-03T20:14:40.607 回答