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
Patricia Arquetteasal
2024-11-24 08:43:12632semak imbas

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.
    }
}

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();
    }
}

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!

Kenyataan:
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