Я хотел бы сделать что-то вроде этого (и, пожалуйста, не спрашивайте, почему):
trait A[T /* tell that there exists companion for T */] {
def f = T.g
}
Можно ли этого добиться?
Я хотел бы сделать что-то вроде этого (и, пожалуйста, не спрашивайте, почему):
trait A[T /* tell that there exists companion for T */] {
def f = T.g
}
Можно ли этого добиться?
Из коробки это невозможно. Вам придется использовать решение на основе макросов. Недавно я опубликовал суть такого решения.
Вы можете использовать его следующим образом:
def getCompanion[T: HasCompanion] = HasCompanion[T].companion
Однако вы не можете использовать контекстные ограничения для параметра типа типажа.