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

Bagaimana untuk menukar pemadaman jenis dalam generik java

WBOY
WBOYke hadapan
2023-04-18 23:40:01865semak imbas

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

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam