【发布时间】:2011-08-28 16:01:40
【问题描述】:
您好,
如何使 Foo 构造函数只对这个包可见(单元测试 + 伴随对象)?
我不想在这 2 个文件之外实例化 Foo...
Foo.scala
package project.foo
class Foo(val value: String)
object Foo {
def generate: Foo = new Foo("test")
}
FooSpec.scala
package project.foo
import org.spec2.mutable._
class FooSpec extends Specification {
"Foo" should {
"be constructed with a string" {
val foo = new Foo("test")
foo.value must be "test"
}
}
}
我使用的是 Scala 2.9
【问题讨论】:
-
顺便说一下,从构造函数调用返回的值永远不会是
null。如果您的字符串构造函数丢失,它将无法编译。如果由于某种原因(满堆等)无法创建对象,则会抛出异常。 -
@Jean-Philippe Pellet:当然!我知道,只是为了举例:)
-
好的,只是确保其他人(可能不知道)不会误解您的代码。
-
@Jean-Philippe Pellet> 看到,我已经编辑了问题以避免混淆
标签: scala