Метод fromString для case-классов, расширяющий запечатанную черту - PullRequest
0 голосов
/ 15 марта 2019

Существует ли идиоматический способ генерации чего-то вроде fromString метода на sealed trait для использования с case classes?

Например, что-то вроде:

sealed trait ExampleEnum {def id: Any}

final case class One(first: String) extends ExampleEnum{ override def id = first}
final case class Two(first: String, second: String) extends ExampleEnum { override def id = (first, second) }

Где должен существовать def fromString(s: String): ExampleEnum? Компаньон object для sealed trait? Что-то другое? Такое ощущение, что этот шаблон «десериализации» будет чем-то существующим или имеет стандартный подход, который можно найти в существующих пакетах.

1 Ответ

1 голос
/ 16 марта 2019

Используйте объект-компаньон для запечатанной черты.

...