Angenommen wir haben eine simple User Class.
Man kann prüfen ob zwei Userobjekte identisch sind indem man einfach prüft:
Aber sagen wir mal ich habe jetzt nicht unbedingt immer identische Userobjekte, und dennoch sind sie inhaltlich gleich. Ich möchte die Klasse User jetzt irgendwie so erweitern (gibts dafür bestimmte Interfaces?), dass der "=="-Operator anders behandelt wird. Zum Beispiel soll "user == user3" true sein, wenn die userID der objekte identisch sind.
Gibt es irgendein Interface das man implementieren kann, mit dem man user dann erweitert durch eine Methode à la:
Mir ist natürlich klar, dass ich die Methode equals() einfach so nehmen könnte zum vergleichen von Usern. Mich interessiert nur ob man quasi das Verhalten von "==" durch irgend ein Interface oder so verändern kann.
Java:
class User {
private int userID;
//konstruktor setzt userID
}
Man kann prüfen ob zwei Userobjekte identisch sind indem man einfach prüft:
Java:
User user = new User(1);
User user2 = user;
if(user == user2){
// true
}
User user3 = new User(1);
if(user == user3){
// false :(
}
Aber sagen wir mal ich habe jetzt nicht unbedingt immer identische Userobjekte, und dennoch sind sie inhaltlich gleich. Ich möchte die Klasse User jetzt irgendwie so erweitern (gibts dafür bestimmte Interfaces?), dass der "=="-Operator anders behandelt wird. Zum Beispiel soll "user == user3" true sein, wenn die userID der objekte identisch sind.
Gibt es irgendein Interface das man implementieren kann, mit dem man user dann erweitert durch eine Methode à la:
Java:
@Override
public boolean equals(User other){
return this.getID() == other.getID();
}
Mir ist natürlich klar, dass ich die Methode equals() einfach so nehmen könnte zum vergleichen von Usern. Mich interessiert nur ob man quasi das Verhalten von "==" durch irgend ein Interface oder so verändern kann.
Zuletzt bearbeitet: