可能重复:
What is the rationale behind having companion objects in Scala?
感谢我之前发布的所有回复(Scala: companion objects and "new" keyword)。我想问一下Scala中伴随对象的一般用途是什么? 首先,我们是否可以在类本身的构造函数/方法定义的形式中包含所有方法,例如apply? 此外,伴随布尔对象的重点是什么,因为它甚至没有定义apply方法?
再次感谢您的所有回复。
答案 0 :(得分:18)
需要伴随对象:
unapply
和unapplySeq
方法以定义模式匹配的自定义提取器(请参阅here)apply
方法,该方法通常用作创建特定类对象的工厂方法(但不一定是)implicit
定义;请参阅Scala specification中隐式解决方案的确切规则或this blog post Scala标准库中的Boolean
对象提供了用于在原始布尔值及其包装的对象表示之间进行转换的方法box
和unbox
。它另外(当前)用作@specialized
注释的参数,以表示该类需要专门研究的原始类型。