Java est égale à pour une Classe. Est == identique .est égal à
Peut-on faire un ==
sur un Class
variable au lieu de equals
et d'en attendre le même résultat?
Par exemple:
Class clazz = xyz;
Cas A:
if(clazz == Date.class) {
//do something
}
Cas B:
if(Date.class.equals(clazz)) {
//do something
}
Sont les Cas A et le Cas B fonctionnellement même?
- Double -stackoverflow.com/questions/971954/...
- eh bien, ma question est plus précisément sur les instances de type Classe. Est le chargeur de classe de la garantie de retour sur la même instance de la Classe pour un type de données ou non.
- Basé sur quelques expériences, il dirait oui. Je ne sais pas si c'est guarunteed, cependant.
Vous devez vous connecter pour publier un commentaire.
Classe est finale, de sorte que son equals() ne peut pas être remplacée. Sa méthode equals() est héritée de l'Objet qui se lit
Alors, oui, ils sont la même chose pour une Classe, ou de n'importe quel type qui n'a pas de remplacer
equals(Object)
Pour répondre à votre deuxième question, chaque chargeur de classe ne peut charger une classe une fois et vous donnera toujours la même Classe pour un nom pleinement qualifié.
Oui.
Prendre un coup d'oeil à la La classe description de la classe et remarque qu'il hérite
equals
deObject
, pour lequel la méthode de lit:"La méthode equals de la classe de l'Objet met en œuvre le plus discriminant possible relation d'équivalence sur les objets; c'est, pour tout non-nulles de référence les valeurs de x et y, cette méthode renvoie true si et seulement si x et y désignent le même objet (x == y a la valeur true)."
Oui, depuis que le code pour
equals(...)
pour la classe est le suivant: