2017-05-14 6 views
0

salut les gars j'ai un petit problème ici pour résoudre.mise en œuvre du code hachage basé sur la classe d'objet

J'ai créé une méthode equals() qui est basée uniquement sur la classe de l'objet de sorte que si deux obj sont de la même classe, obj1.equals (obj2) renvoie true. maintenant ma question est, Comment puis-je implémenter un hashcode() basé uniquement sur la classe obj ??

@Override 
public boolean equals(Object obj){ 
    if(obj.getClass() == this.getClass()){ 
     return true; 
    }else{ 
     return false; 
    } 
} 
+2

'return 79658765;' (par exemple: tout entier le ferait). Pourquoi faites-vous cela? Cela semble être une idée terrible. –

+0

Vous pouvez renvoyer le hashcode du nom complet de la classe. Mais pourquoi vous écrivez une méthode aussi terrible? S'il vous plaît élaborer plus. –

+0

Quel est le cas d'utilisation pour cela? Il semble que quelque chose va exploser dans votre visage ... –

Répondre

1

Vous pouvez retourner le hashCode du Class exemple:

public int hashCode() 
{ 
    return getClass().hashCode(); 
} 

Cela garantirait que deux objets qui sont égaux en fonction de votre equals() mise en œuvre aurait le même hashCode().