Rumah > Java > javaTutorial > Bagaimana untuk menukar pemadaman jenis dalam generik java

Bagaimana untuk menukar pemadaman jenis dalam generik java

WBOY
Lepaskan: 2023-04-18 23:40:01
ke hadapan
869 orang telah melayarinya

Penjelasan

1. Nilai generik wujud dalam fasa kompilasi Apabila kod memasuki mesin maya, nilai generik akan dipadamkan.

2. Ciri ini dipanggil pemadaman jenis. Apabila generik dialih keluar, dia mempunyai dua kaedah penukaran. Yang pertama ialah jika generik tidak menetapkan had atas jenis, generik akan ditukar kepada jenis Objek Yang kedua ialah jika had atas jenis ditetapkan, generik akan ditukar kepada had atas jenisnya.

Contoh

//未指定上限
public class Test1<T> {
    T t;
    public T getValue() {
        return t;
    }
    public void setVale(T t) {
        this.t = t;
    }
}
//指定上限
public class Test2<T extends String> {
    T t;
    public T getT() {
        return t;
    }
    public void setT(T t) {
        this.t = t;
    }
}
//通过反射调用获取他们的属性类型
@Test
public void testType1() {
    Test1<String> test1 = new Test1<>();
    test1.setVale("11111");
    Class<? extends Test1> aClass = test1.getClass();
    for (Field field : aClass.getDeclaredFields()) {
        System.out.println("Test1属性:" + field.getName() + "的类型为:" + field.getType().getName());
    }
 
    Test2 test2 = new Test2();
    test2.setT("2222");
    Class<? extends Test2> aClass2 = test2.getClass();
    for (Field field : aClass2.getDeclaredFields()) {
        System.out.println("test2属性:" + field.getName() + "的类型为:" + field.getType().getName());
    }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk menukar pemadaman jenis dalam generik java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan