15
Q
默認構造函數匕首
A
回答
21
匕首主動要求您通過添加無參數構造函數或添加註入字段來將@Inject添加到您的注入類。第三個選擇是從@Provides方法返回類,像這樣:
@Module(...)
class MyModule {
@Provides Foo provideFoo() {
return new Foo(); // Foo is not injectable.
}
}
但這似乎是多餘的樣板,但與吉斯和其他框架,JIT經驗隨機類的結合真可謂是充斥着錯誤。我們已經看到java.lang.String注入了某些東西,並且因爲有人忘記了綁定它,所以最終注入了「」而不是所需的字符串。因此,Dagger需要一個@Inject的構造函數或者字段(Guice在4.x中有選擇地使用它,儘管爲了向後兼容性,默認情況下它是關閉的)
這是一個少見的例子,Dagger選擇了更多的正確性保證代價是少量的冗長。
相關問題
- 1. 類默認構造函數
- 2. 默認構造函數
- 3. 非默認構造函數
- 4. C++,默認構造函數
- 5. constexpr默認構造函數
- 6. 非默認構造函數
- 7. 匕首模塊與構造函數的參數?
- 8. 從參數化構造函數調用默認構造函數
- 9. 匕首:在構造函數中注入命名字符串
- 10. Android測試與匕首模擬注入構造函數
- 11. 匕首2如何執行構造函數注入
- 12. Android:匕首2和構造函數注入
- 13. 匕首2.13:構造函數注入類的控制範圍
- 14. 匕首2離不開一個構造函數提供
- 15. 是構造函數生成的默認構造函數嗎?
- 16. 從另一個構造函數調用默認構造函數
- 17. 構造函數替換默認構造函數?
- 18. 繼承構造函數和默認構造函數
- 19. 默認構造函數與正常構造函數的類C++
- 20. 構造函數和默認構造函數的區別
- 21. C++構造函數調用默認構造函數
- 22. 數組默認構造函數
- 23. 默認的構造函數的參數
- 24. Python類構造函數默認參數
- 25. 默認和參數化構造函數
- 26. 默認的默認構造函數,爲什麼不是用戶提供的默認構造函數?
- 27. 默認構造函數遞歸崩潰
- 28. 默認構造函數調用
- 29. 屬性構造函數的默認值?
- 30. NSObject的默認構造函數