У меня есть набор черт/класс, как:Неявное преобразование класса дерева
trait Parent
case class ChildA(str: String) extends Parent
case class ChildB(str: String) extends Parent
object Parent {
implicit def toA(str: String) = ChildA(str)
implicit def toB(str: String) = ChildB(str)
}
и это хорошо работает в случае преобразования для ChildA
или ChildB
.
На моих тестах я хочу иметь дополнительное правило, что если метод получает Parent
это сделать что-то вроде:
implicit def toParent(str: String) = ChildA(str)
Как это сделать? компилятор, похоже, запутался, так как он может выбирать несколько преобразований для родителя.
Экземпляр ребенка всегда содержит свойства родителя. Что ты пытаешься сделать? Похож на проблему [XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). –