Это делается простым способом с помощью частного конструктора, пользовательского apply
и сопутствующего объекта.
case class Foo private (bar: Bar){
def methYouWantToCall: Unit = ???
}
object Foo {
def apply(bar: Bar): Foo = {
val foo = new Foo(bar)
foo.methYouWantToCall
foo
}
}
Следовательно, methYouWantToCall
должна быть побочной функцией с возвращаемым типом Unit
. Поскольку вы используете scala, существует множество способов избежать таких.