Pour déterminer si une classe Java est un descendant d'un autre type de classe

 Définition de trois classes, la relation suivante

class A {}

class B extends A {}

class C extends B {}

instanceof Trois méthodes d'essai, isInstance, IsAssignableFrom

Code d'essai suit comme

A a = new C();
B b = new C();
C c = new C();


System.out.println(a instanceof B); // true
System.out.println(b instanceof B); // true
System.out.println(c instanceof B); // true

System.out.println(A.class.isInstance(B.class)); // false
System.out.println(B.class.isInstance(B.class)); // false
System.out.println(C.class.isInstance(B.class)); // false

System.out.println(A.class.isAssignableFrom(B.class)); // true
System.out.println(B.class.isAssignableFrom(B.class)); // true
System.out.println(C.class.isAssignableFrom(B.class)); // false

conclusion:

1, il est déterminé si un objet est une classes dérivées d'objets d'une classe, on peut utiliser directement un instanceof B, ou B.class.isAssignableFrom (a.getClass ());

2, en l'absence de classe d'objet est déterminé si un descendant d'une autre classe, seulement B.class.isAssignableFrom (C.class);

passer:

Je sais que le deuxième plus. . .

 

Publié 16 articles originaux · louange gagné 3 · Vues 4525

Je suppose que tu aimes

Origine blog.csdn.net/qq_29697901/article/details/102788869
conseillé
Classement