Мне интересно, могу ли я создать метод с похожей идеей:
def myMethod[T](param: T)(implicit oneOf: Either[TypeClass1[T], TypeClass2[T]]) = oneOf match ...
Я пытался использовать параметры по умолчанию (я видел кое-что похожее в akka):
def myMethod[T](param: T)(implicit t1: TypeClass1[T] = null, t2: TypeClass2[T] = null) =
if (t1 == null) ...
Однако таким образом я не могу заставить компилятор scala найти хотя бы один из них.
Также я реализовал неявное преобразование из TypeClass1[T]
в Left[TypeClass1[T], TypeClass2[T]]
и из TC2
в Right
, однако Scala компилятор игнорирует эти преобразования.
Есть ли способ сделать что-то подобное?