Hallo Leute,
ich habe da mal eine Frage.
Ich hab mir ne eigene Klasse geschrieben und im Netz gelesen, dass ich da auch noch equals() und hashCode() miteinbauen muss. Habe ich auch getan. Problem ist nur, dass die equals Methode bei mir immer false ergibt, weil ich im Konstruktor eins der Variablen hochzähle bei jedem Aufruf. Und so wird mein Objekt nie richtig aufgerufen.
Was muss ich da tun? Geht das überhaupt so wie ich das hab?
Also boolean b ergibt immer false, weil meine ID durch den Aufruf des Konstruktors in meinen Klassen immer erhöht wird. Kann ich das irgendwie anders lösen?
Vielen Dank für eure Hilfe.
Lg Sabine
ich habe da mal eine Frage.
Ich hab mir ne eigene Klasse geschrieben und im Netz gelesen, dass ich da auch noch equals() und hashCode() miteinbauen muss. Habe ich auch getan. Problem ist nur, dass die equals Methode bei mir immer false ergibt, weil ich im Konstruktor eins der Variablen hochzähle bei jedem Aufruf. Und so wird mein Objekt nie richtig aufgerufen.
Was muss ich da tun? Geht das überhaupt so wie ich das hab?
Code:
public class CustomEmployee {
public int employeeID;
public String employeeLabel;
public String employeeType;
public CustomVertex(int employeeID, String employeeType){
this.employeeID = employeeID;
this.employeeType = employeeType;
}
public String toString(){
return "CustomEmployee"+employeeID;
}
public int getEmployeeID() {
return employeeID;
}
public void setEmployeeID(int employeeID) {
this.employeeID = employeeID;
}
public String getEmployeeLabel() {
return employeeLabel;
}
public void setEmployeeLabel(String employeeLabel) {
this.employeeLabel = employeeLabel;
}
public String getEmployeeType() {
return employeeType;
}
public void setEmployeeType(String employeeType) {
this.employeeType = employeeType;
}
public boolean equals(Object obj) {
if(this == obj)
return true;
if((obj == null) || (obj.getClass() != this.getClass()))
return false;
CustomEmployee emp = (CustomEmployee)obj;
boolean b = employeeID == emp.employeeID;
boolean c = (employeeLabel == emp.employeeLabel || (employeeLabel != null && employeeLabel.equals(emp.employeeLabel)));
return b && c;
}
public int hashCode()
{
int hash = 7;
hash = 31 * hash + employeeID;
hash = 31 * hash + (null == employeeType ? 0 : employeeType.hashCode());
return hash;
}
}
Also boolean b ergibt immer false, weil meine ID durch den Aufruf des Konstruktors in meinen Klassen immer erhöht wird. Kann ich das irgendwie anders lösen?
Vielen Dank für eure Hilfe.
Lg Sabine