Я новичок в Scala и учась писать в нем персональный проект.Составляющие подклассы для достижения ограничения типа
У меня есть эта проблема и оглядываться не очень помогает. Так вот это -
abstract class Service{
def containsFeatures(x: Feature*) = ???
}
object Service1 extends Service{..
def containsFeature(x: Feature*)
}
object Service2 extends Service{..
def containsFeature(x: Feature*)
}
Trait Feature
case object A extends Feature
case object B extends Feature
case object C extends Feature
case object D extends Feature
case object E extends Feature
case object F extends Feature
case object G extends Feature
Я хотел бы ограничить свой код таким образом, что Service1 определяет, какие функции возможны и которые являются ошибочными. Например: Service1 позволяет создавать объекты A, C, E, G и отображать ошибку при подаче других функций.
Можно ли программно ограничить это только нашим определением Service1 без изменения других классов?
Надеюсь, мой вопрос достаточно ясен.
Спасибо за любые предложения.
Вы хотите сделать что-нибудь подобное? Service1.containsFeature (Список (A, C, E, G)) // OK Service1.containsFeature (List (B, D, F)) // throws Error –
Вы имеете в виду, что он должен показывать ошибку во время компиляции, правильно? –
Да, ошибка во время компиляции. – Adarsh