假设:
是否安全因为scala.AnyRef使用一对括号定义了toString()和hashCode(),因为它与Java的互操作性(正如Martin在https://groups.google.com/forum/#!topic/scala-language/RlV9O1RDmis中所建议的那样),
Scala标准库中的每个类是scala.AnyRef的后代,用一对括号定义toString()和hashCode()?
换句话说,我是否可以相信标准库的开发人员对于AnyRef的后代类使用toString()和hashCode()是一致的?
编辑 - 更改了问题,仅询问AnyRef的后代类
答案 0 :(得分:4)
由于您只需要一个反例,here you go:
object Int extends AnyValCompanion {
...
override def toString = "object scala.Int"
}
但是,对标准库源上的"toString[^(]"
进行grepping会产生数百个其他内容。
请注意,能够使用参数为空的参数列表覆盖方法,并且参数为Scala语言规范中的Scala语言规范was explicitly added。