可能重复:
What is the rationale behind having companion objects in Scala?斯卡拉:同伴对象宗旨
感谢我以前的帖子(Scala: companion objects and "new" keyword)所有响应。我想问问Scala中的伴侣对象的一般用途是什么? 首先,我们能不能在类本身的构造器/方法定义的形式中包含所有的方法,比如apply? 此外,伴随布尔对象的重点是什么,因为它甚至没有定义应用方法?
再次感谢您的所有答复。
可能重复:
What is the rationale behind having companion objects in Scala?斯卡拉:同伴对象宗旨
感谢我以前的帖子(Scala: companion objects and "new" keyword)所有响应。我想问问Scala中的伴侣对象的一般用途是什么? 首先,我们能不能在类本身的构造器/方法定义的形式中包含所有的方法,比如apply? 此外,伴随布尔对象的重点是什么,因为它甚至没有定义应用方法?
再次感谢您的所有答复。
伴侣对象需要:与同伴的类
unapply
和unapplySeq
方法来定义用于模式匹配的自定义提取器(请参阅here)apply
方法,该方法通常用作创建特定类的对象的工厂方法(但不一定是)Boolean
该对象在Scala的标准库提供box
和unbox
用于原始布尔值和其包裹,对象表示之间进行转换的方法。它另外(当前)用作@specialized
注释的参数,以表示该类需要专用于哪些基本类型。
[下面的答案](http://stackoverflow.com/a/9806136/39396)比复制的接受答案要好。 – 2013-03-17 22:57:27