У меня есть следующие определения:Передача объектов в случае Scala
sealed trait MyTrait
case object One extends MyTrait
case object Two extends MyTrait
object Test extends (MyTrait => MyTraitReturnVal) {
def apply(myTrait: MyTrait) = { ... }
def myMethod(myTrait: MyTrait) = {
...
}
}
Когда я звоню Test (один), он жалуется, что он ожидает интерфейс вместо конкретного типа. Любые предложения о том, как обойти это?
Так телефону:
Test(One)
Жалуется, что он ожидает MyTrait и фактический параметр One.type!
Какое точное сообщение об ошибке, на какой именно строке кода? – sjrd
Как реализовать эту функцию? (Или почему «myMethod» находится в примере кода?) –
Работает ли он, если вы добавляете подсказку типа, например: «Test (One: MyTrait)»? Существуют ли другие объекты, классы с именем «Один»? –