Jawaban:
Jika Anda ingin tahu apakah Class
memanjang atau tidak , gunakan Kelas # isAssignableFrom (Kelas) . Sebagai contoh Anda, itu akan menjadi:
if(B.class.isAssignableFrom(A.class)) { ... }
Jika Anda tertarik pada apakah sebuah instance memiliki tipe tertentu atau tidak, gunakan instanceof
:
A obj = new A();
if(obj instanceof B) { ... }
Perhatikan bahwa ini akan kembali true
jika kelas / instance adalah anggota dari hirarki tipe dan tidak membatasi untuk mengarahkan hubungan superclass / subclass. Sebagai contoh:
// if A.class extends B.class, and B.class extends C.class
C.class.isAssignableFrom(A.class); // evaluates to true
// ...and...
new A() instanceof C; // evaluates to true
Jika Anda ingin memeriksa hubungan superclass / subclass langsung, Tim juga telah memberikan jawaban .
Anda ingin tahu apakah b
dapat ditugaskan dari a
:
b.isAssignableFrom(a);
Selain itu, jika Anda ingin tahu itu a
adalah subkelas langsung dari b
:
a.getSuperclass().equals(b);
a
dan b
dari pertanyaan