Rumah > Java > javaTutorial > Bagaimana untuk Membetulkan Ralat 'tidak boleh disediakan' Dagger 2?

Bagaimana untuk Membetulkan Ralat 'tidak boleh disediakan' Dagger 2?

Barbara Streisand
Lepaskan: 2024-12-10 16:02:14
asal
178 orang telah melayarinya

How to Fix Dagger 2's

Membetulkan Ralat Dagger 2: "... tidak boleh disediakan [...]"

Ralat ini berlaku apabila Dagger 2 tidak dapat menyediakan kebergantungan tanpa pembina beranotasi atau kaedah beranotasi dengan @Provides. Untuk menyelesaikannya:

1. Tambah @Inject Constructor

Tambahkan @Inject anotasi pembina pada kelas yang tidak disediakan:

class MyDependency {
    @Inject
    MyDependency() { /**/ }
}
Salin selepas log masuk

Dagger kemudian akan menggunakan pembina ini untuk mencipta contoh.

2. Cipta Kaedah @Provides dalam Modul

Sebagai alternatif, buat kaedah beranotasi dengan @Provides dalam modul yang mengembalikan kebergantungan:

@Module
class MyModule {
    @Provides
    MyDependency provideMyDependency() {
        return new MyDependency();
    }
}
Salin selepas log masuk

Dagger akan menggunakan kaedah ini untuk mencipta dan berikan pergantungan.

Tambahan Pertimbangan

  • Pastikan bahawa kebergantungan yang disediakan adalah jenis yang sama dengan kebergantungan yang diminta (iaitu, bukan kelas super atau antara muka).
  • Sahkan bahawa komponen menyediakan kebergantungan ( cth., MyComponent.myDependency()).
  • Jika menggunakan antara muka, gunakan @Binds untuk menentukan pelaksanaan yang disediakan.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'tidak boleh disediakan' Dagger 2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan