這裏是我的客戶:有時不需要如何在Guice中進行可選的綁定?
class Client {
@Inject(optional=true) Service service;
}
該服務,而我們知道,信息的JVM啓動時(即粘結劑運行之前)。 如何使綁定成爲可選項?如果我完全不指定綁定,它會嘗試新建該服務(並且因爲沒有零參數構造函數而失敗:「注入package.Client.service時出錯(Service.java:40):找不到在package.Service「)一個合適的構造函數,我不能這樣做:
binder.bind(Service.class).toInstance(null);
因爲吉斯似乎不允許空值。有任何想法嗎?
吉斯建議使用'binder.bind(Service.class).toProvider( (null));' –
oshai
2014-07-02 11:51:44
這個問題的人可能會對Guice的['OptionalBinding'](https://google.github.io/guice/api-docs/4.1/javadoc/com/google)感興趣/inject/multibindings/OptionalBinder.html)類,它允許您提供可能或不可以設置的綁定。 – dimo414 2017-04-17 20:51:22