У меня есть неявный класс, который должен использовать данный параметр во время выполнения. Поэтому я определяю это неявно в другом классе, который принимает этот параметр в конструкторе. Упрощенная версия того, что я делаю, выглядит следующим образом:
case class A(p1: String) {
def foo = println("foo: " + p1)
}
class B(p2: String) {
implicit class Enhancer(a: A) {
implicit def bar = s"bar: ${a.p1}, $p2"
}
}
Поэтому, когда мне нужно использовать этот класс, я делаю следующее:
val a = A("x")
val b = new B("y")
import b._
a.bar
Мне интересно, есть ли аккуратнее, чем выше? В частности, две средние строки, где я определяю объект, а затем импортирую из него. Например, есть ли способ, которым я мог бы вызвать одну строку, чтобы вернуть неявный класс, который мне нужен?