Saludos,Restringir la visibilidad constructor de la clase en Scala 2.9
¿Cómo puedo hacer que el constructor Foo visible sólo para este paquete (prueba de la unidad + objeto acompañante)?
no quiero ser capaz de crear una instancia de Foo fuera de este 2 archivos ...
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"
}
}
}
Estoy usando Scala 2.9
Por cierto, el valor devuelto por una llamada al constructor nunca es 'nulo'. Si falta su constructor de cadena, no se compilará. Si por algún motivo (pila completa, etc.) no se puede crear el objeto, se lanzará una excepción. –
@ Jean-Philippe Pellet: ¡por supuesto! Lo sé, fue solo por el ejemplo :) –
OK, solo asegúrate de que otras personas (que quizás no lo sepan) no malinterpreten tu código. –