Scala:伴生对象和“new”关键字

8
在我最近有关在Scala中使用或省略“new”关键字的帖子中 ( "new" keyword in Scala),有人告诉我省略是因为某些类具有定义了apply方法的伴生对象。我的问题是:我们能否知道或是否有任何通用规则来区分哪些类/对象具有伴生对象和apply方法?
提前感谢,如果这是一个愚蠢的问题,对不起,但是作为一个来自Java背景的人,这有点令人困惑。

1
你可以查看Scaladocs。或者如果你使用IDE,代码补全应该会显示它。 - drexin
我正在使用 Eclipse,它应该如何告诉我是否正在使用 Companion? - Bober02
你的问题不是是否应该使用伴生对象,而是如何区分哪些类具有定义了 apply 的伴生对象,IDE 在代码完成列表中会显示 C 表示类,O 表示对象。 - drexin
2个回答

12
Scala API 文档 中,你会在左侧列表中看到一个小图标 enter image description here。如果你点击它,就会进入所提到的类或特质的伴生对象文档。
大多数集合类和许多其他标准库中的类都有具有 `apply` 方法的伴生对象。
对于 case 类,Scala 编译器会自动创建一个带有 `apply` 方法(以及其他方法)的伴生对象。

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接