Rumah > Java > javaTutorial > Bagaimana untuk Menghidupkan Jenis Generik dalam Java dengan Parameter Kelas?

Bagaimana untuk Menghidupkan Jenis Generik dalam Java dengan Parameter Kelas?

Patricia Arquette
Lepaskan: 2024-11-24 08:43:12
asal
572 orang telah melayarinya

How to Instantiate a Generic Type in Java with a Class Parameter?

Instantiating Generics Type in Java with Class Parameter

Generik dalam Java menyediakan cara yang mudah untuk menentukan kelas dan kaedah yang beroperasi pada pelbagai jenis data. Walau bagaimanapun, membuat seketika objek jenis generik boleh menjadi agak rumit.

Andaikan anda mempunyai pengisytiharan kelas seperti ini:

public class Abc<T> {
    public T getInstanceOfT() {
        // I want to create an instance of T and return the same.
    }
}
Salin selepas log masuk

Bagaimana anda boleh mencipta objek jenis T dalam kaedah getInstanceOfT?

Penyelesaian:

Kuncinya untuk membuat instantiating jenis generik adalah untuk menghantar jenis sebenar sebagai hujah kepada kelas generik. Ini boleh dilakukan menggunakan Kelas parameter jenis:

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

Dalam kod yang diubah suai ini, kaedah getInstanceOfT menerima hujah jenis Kelas, yang mewakili jenis sebenar objek yang akan dibuat. Kaedah newInstance() pada objek Kelas kemudian mencipta tika jenis itu dan mengembalikannya.

Pengendalian Pengecualian:

Adalah penting untuk ambil perhatian bahawa anda perlu untuk menambah pengendalian pengecualian pada kod anda, kerana newInstance() boleh membuang InstantiationException atau IllegalAccessException.

Jenis Waktu Jalan:

Meluluskan jenis sebenar sebagai hujah adalah perlu kerana jenis T tidak diketahui pada masa penyusunan. Selepas penyusunan, kod bait tidak mengandungi sebarang maklumat tentang jenis sebenar, jadi ia mesti diberikan secara eksplisit pada masa jalan.

Atas ialah kandungan terperinci Bagaimana untuk Menghidupkan Jenis Generik dalam Java dengan Parameter Kelas?. 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