Мне нужно проверить параметр моего класса значений (см. Ниже). Но я получаю сообщение об ошибкеОператор if в классе значений
это утверждение не имеет значение в классе
во время компиляции, есть способ обойти это? Благодарю.
case class Size(val size: Long) extends AnyVal {
if (size < 0) throw new IllegalArgumentException; // error
def +(s: Size): Size =Size(size + s.size)
}
Я думаю, ваша проблема - это параметр 'size'. Поскольку класс value не может быть параметром другого значения другого класса значений. –
http://docs.scala-lang.org/sips/completed/value-classes.html, а именно, часть «C может не иметь операторов инициализации». –
Sиe: http://stackoverflow.com/questions/33136558/validations-in-value-classes – Samar