Rumah > Java > javaTutorial > Ralat Ketergantungan Dagger 2: Bagaimana Saya Boleh Membetulkan Isu '... tidak boleh diberikan [...]'?

Ralat Ketergantungan Dagger 2: Bagaimana Saya Boleh Membetulkan Isu '... tidak boleh diberikan [...]'?

Barbara Streisand
Lepaskan: 2024-12-17 20:03:13
asal
482 orang telah melayarinya

Dagger 2 Dependency Errors: How Can I Fix the

Cara Menyelesaikan Ralat Ketergantungan Dagger 2

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

Ralat ini berlaku apabila Dagger 2 tidak dapat memberikan kebergantungan tanpa pembina @Inject-anotasi atau @Provides-anotasi kaedah.

Penjelasan:

Dagger 2 bergantung pada suntikan kebergantungan berasaskan anotasi untuk mencipta dan menyediakan objek. Tanpa pembina @Inject atau kaedah @Provides, Dagger tidak mempunyai cara untuk mencipta kebergantungan.

Penyelesaian:

Gunakan Suntikan Pembina:

  • Tambahkan pembina beranotasi @Inject pada kelas bergantung. Ini membolehkan Dagger menggunakan suntikan pembina untuk mencipta objek.

Gunakan Kaedah @Provides:

  • Buat modul dan tambah @Provides -kaedah beranotasi untuk memberikan kebergantungan. Tambahkan modul ini pada komponen anda.

Contoh dengan Suntikan Pembina:

class MyDependency {

    // Add `@Inject` annotation to the constructor
    @Inject
    public MyDependency() {}
}
Salin selepas log masuk

Contoh dengan Kaedah @Provides:

@Module
public class MyModule {

    @Provides
    public MyDependency provideMyDependency() {
        return new MyDependency();
    }
}

@Component(modules = MyModule.class)
public interface MyComponent {
    MyDependency myDependency();
}
Salin selepas log masuk

Beri Perhatian kepada Butiran:

  • Pastikan anda menyediakan dan meminta jenis pergantungan yang sama.
  • Semak kesilapan menaip dan anotasi yang tidak sepadan dalam kod anda.
  • Semak dua kali bahawa anda telah menambah modul yang diperlukan pada komponen anda.

Atas ialah kandungan terperinci Ralat Ketergantungan Dagger 2: Bagaimana Saya Boleh Membetulkan Isu '... tidak boleh diberikan [...]'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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