Ответ 1
Вы не можете иметь конструктор, возвращающий что-то еще, чем тип класса. Вы можете, однако, определить функцию на объекте-компаньоне, чтобы сделать именно это:
case class MyClass private(name: String)
object MyClass {
def fromName(name: String): Option[MyClass] = {
if(name == null || name.isEmpty)
None
else
Some(new MyClass(name))
}
Конечно, вы можете вернуть Validation
, Either
или Try
, если хотите.