Scala MacWire:是否可以像在带有Guice的@Inject中那样自动连接递归依赖的case类?

Scala MacWire:是否可以像在带有Guice的@Inject中那样自动连接递归依赖的case类?,scala,dependency-injection,macwire,Scala,Dependency Injection,Macwire,以下代码在编译时失败: object Foo { case class A() case class B(a: A) case class C(b: B) lazy val a = wire[A] // Error:(14, 22) Cannot find a value of type: [QuickMain.B] lazy val c = wire[C] } 有没有可能让macwire自动推断它可以通过创建a来创建B(老实说,lazy val a=wire[a]甚

以下代码在编译时失败:

object Foo {
  case class A()
  case class B(a: A)
  case class C(b: B)

  lazy val a = wire[A]
  // Error:(14, 22) Cannot find a value of type: [QuickMain.B]
  lazy val c = wire[C]
}
有没有可能让macwire自动推断它可以通过创建
a
来创建
B
(老实说,
lazy val a=wire[a]
甚至不需要)?如果macwire不能做到这一点,是否有另一个Scala框架可以以类型安全的方式做到这一点(我知道Dagger,但我正在寻找基于Scala的解决方案)

为了举例说明,在Guice中,我可以执行以下操作:

public class JavaExample {
  public static class A {}

  public static class B {
    @Inject
    public B(A a) {}
  }

  public static class C {
    @Inject
    public C(B b) {}
  }

  public static void main(String[] args) {
    // No bindings necessary!
    var injector = Guice.createInjector();
    System.out.println(injector.getInstance(C.class));
  }
}