J'essayais d'utiliser la méthode getclass () et j'ai le code suivant:
class parent{}
class child extends parent{}
public class test {
public static void main(String[] args){
child b= new child();
System.out.println(b.getClass()==parent.class);
}
}
3 Réponses :
Depuis l'introduction de génériques dans Java 5, le Java. Lang.class code> classe est générique sur le type qu'il représente. Cela permet de construire un objet à travers leur code> de classe code> sans couler et active d'autres idiomes utiles.
C'est pourquoi le compilateur peut devenir trop intelligent et voir qu'il est capable d'évaluer entièrement l'expression au moment de la compilation : Votre expression est toujours Un moyen d'éviter que ceci consiste à utiliser Une autre façon de résoudre ce problème de réparer le retour Tapez à une classe ou à l'aide d'une variable intermédiaire du type non générique: p> false code>. Le compilateur vous donne l'erreur de compatibilité de type, mais c'est un résultat direct de l'expression étant la constante de temps de compilation. P> java.lang.Object code> comme le type. Une fois que vous faites cela, le compilateur ne peut plus évaluer le type de résultat code> gettype code> selon précisément, évitant ainsi l'erreur. P> non générique code> p>
Merci :-) le figuré.
Ce message d'erreur signifie fondamentalement que le compilateur peut indiquer lorsqu'il s'agit de la compilation du programme que la réponse à cette vérification de l'égalité sera toujours fausse. Comme il connaît la classe enfant et la classe des parents ne peut jamais être égale, il refuse de compiler le code. P>
Si vous voulez juger si b.geclass () hériter parent.class, je suggère d'utiliser cette méthode: et appelez p>
classe.isAssiCableFrom () code> et classe.isinstance () code> Do déjà tout cela, et cela ne répond pas réellement à la question.