首頁 >Java >java教程 >如何修復 Dagger 2 的「無法提供」錯誤?

如何修復 Dagger 2 的「無法提供」錯誤?

Barbara Streisand
Barbara Streisand原創
2024-12-10 16:02:14176瀏覽

How to Fix Dagger 2's

修正Dagger 2 錯誤:「...無法提供[...]」

當Dagger 2 無法提供時會出現此錯誤沒有帶註釋的構造函數或用@Provides 註釋的方法的依賴項。解法:

1.新增@Inject 建構子

新增@Inject 註解的建構子:

class MyDependency {
    @Inject
    MyDependency() { /**/ }
}

Dagger 將使用此建構函式來建立實例。

2.在模組中建立@Provides 方法

或者,在傳回依賴項的模組中建立一個用@Provides 註解的方法:

@Module
class MyModule {
    @Provides
    MyDependency provideMyDependency() {
        return new MyDependency();
    }
}

Dagger 將使用此方法來建立並提供依賴項。

其他注意事項

  • 確保提供的依賴項與請求的依賴項類型相同(即不是超類別或介面)。
  • 驗證元件是否提供相依性(例如,MyComponent.myDependency())。
  • 如果使用接口,請使用 @Binds 指定實作提供。

以上是如何修復 Dagger 2 的「無法提供」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn