繁体   English   中英

如何在Guice的构造函数中注入需要一些价值的实现?

[英]How to inject a implementation that takes some value in its constructor in Guice?

我有以下实现,我正在尝试注入Guice

`public class Client{ 
   private final Database db; 
   public Client(Database db){ 
     this.db = db 
   } 
}

class SomeClass{ 
  private Client client; 

  @Inject 
  public SomeClass(Client client){ 
    this.client = client; 
  } 
}`

这是我的注入代码Injector guice = Guice.Injector(); guice.getInstance(SomeClass.class);

但是我继续得到错误:

在hello.package.helloworld.Client中找不到合适的构造函数。 类必须具有用@Inject注释的一个(并且只有一个)构造函数或非私有的零参数构造函数

如何注入已经带有某些参数的类?

错误文本非常明确:您没有在Client的构造函数上使用@Inject

因此,想法是这样:

public class Client{ 
  private final Database db; 
  @Inject
  public Client(Database db){ 
    this.db = db 
  } 
}

而且,如果您不知道数据库但想创建数据库,请考虑使用Guice的辅助注入 ,它会为您创建工厂。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM