Rumah > Java > javaTutorial > Bagaimana untuk Memancarkan Jenis Generik dalam Java pada Runtime?

Bagaimana untuk Memancarkan Jenis Generik dalam Java pada Runtime?

Linda Hamilton
Lepaskan: 2024-11-13 12:12:02
asal
308 orang telah melayarinya

How to Instantiate Generic Types in Java at Runtime?

Menginstantiasikan Jenis Generik dalam Java

Walaupun kelihatan mudah untuk membuat contoh jenis generik di Jawa, ia menimbulkan cabaran yang unik. Artikel ini meneroka selok-belok tugas ini dan menyediakan penyelesaian yang komprehensif.

Pertimbangkan pengisytiharan kelas berikut:

public class Abc<T> {
    public T getInstanceOfT() {
        // Create and return an instance of type T
    }
}
Salin selepas log masuk

Matlamatnya adalah untuk mencipta contoh jenis generik T dalam kaedah getInstanceOfT(). Walau bagaimanapun, pemadaman maklumat jenis semasa penyusunan menjadikannya mustahil untuk menentukan jenis T sebenar daripada kod bait.

Menyelesaikan Cabaran

Untuk menyelesaikan masalah ini, kita perlu melepasi jenis sebenar daripada T sebagai hujah masa jalan. Ini boleh dicapai dengan mengubah suai perisytiharan kelas kepada:

public class Abc<T> {
    public T getInstanceOfT(Class<T> aClass) {
        return aClass.newInstance();
    }
}
Salin selepas log masuk

Kaedah kini mengambil objek Kelas sebagai hujah, yang mewakili jenis T sebenar untuk dijadikan instantiat. Ini membolehkan kami menggunakan pantulan untuk mencipta tika jenis yang diingini.

Perhatikan bahawa pengendalian pengecualian diperlukan untuk mengurus sebarang ralat semasa instantiasi.

Kesimpulan

Menginstanti jenis generik dalam Java melibatkan penghantaran maklumat jenis sebenar semasa runtime, kerana ia tidak boleh disimpulkan daripada bytecode. Dengan menggunakan objek dan pantulan Kelas, adalah mungkin untuk mencipta tika jenis generik secara dinamik.

Atas ialah kandungan terperinci Bagaimana untuk Memancarkan Jenis Generik dalam Java pada Runtime?. 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