Получение `class должно быть либо объявлено абстрактным scala` с запечатанной чертой - PullRequest
0 голосов
/ 18 октября 2019

Я читаю документы и пытаюсь понять, что такое черты и объекты Scala и все эти забавные вещи, но все еще не могу понять, как решить эту проблему.

sealed trait MyTrait {
  val username: Option[String]
  val password: Option[String]
}

sealed trait OptionTrait{
  val types: Option[Types]
}

case class Types(
  col: String
)

case class MyTraitTypes(
  user: String
  password: String
)

case class MyClass (
  auth: Option[MyTraitTypes]
  type: Option[Types]
) extends AnotherClass with OptionTrait with MyTrait

Ошибка включенаMyClass, где он хочет Class must either be declared abstract or implement abstract member password: Option[String] в MyTrait`. Любая помощь, пожалуйста?

----- edit

, поэтому я путаюсь с тем, что OptionTrait работает просто отлично. Я не могу различить разницу между этими двумя (рабочий и неработающий). Потому что, похоже, class Types тоже ничего не делает.

1 Ответ

0 голосов
/ 18 октября 2019

Не должно быть запятой после username. Также auth должно быть в скобках, а не в фигурных скобках.

Попробуйте

class AnotherClass

sealed trait MyTrait {
  val username: Option[String]
  val password: Option[String]
}

case class MyClass(
  auth: Option[MyTrait]
) extends AnotherClass with MyTrait {
  override val username: Option[String] = ???
  override val password: Option[String] = ???
}

, где вы должны реализовать методы вместо ???

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...