Menilai hubungan warisan dalam persekitaran generik Java
<:> Soalan:
Dalam penggunaan projek generik, anda perlu menentukan sama ada objek jenis yang diberikan diberikan kelas generik tertentu. Oleh kerana ciri -ciri generik kelas, penggunaan kaedah
akan gagal.
IsSubclassOf
Contoh:
Pertimbangkan struktur peringkat kelas berikut:
Matlamatnya adalah untuk menentukan sama ada kelas ujian diperolehi daripada GenericClass.
<code class="language-java">public class GenericClass<T> implements GenericInterface<T> { } public class Test extends GenericClass<SomeType> { }</code>
Java menyediakan penyelesaian kepada masalah ini. Pertama, kita membuat fungsi praktikal:
Sekarang, untuk memeriksa sama ada ujian diperolehi dari geneclass, sila gunakan kod berikut:
<code class="language-java">static boolean isSubclassOfRawGeneric(Type generic, Type toCheck) { while (toCheck != null && toCheck != Object.class) { Type cur = toCheck instanceof ParameterizedType ? ((ParameterizedType) toCheck).getRawType() : toCheck; if (generic == cur) { return true; } toCheck = toCheck.getSuperclass(); } return false; }</code>
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Derivasi Kelas dengan Generik di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!