Einen guten Abend euch allen ,
ich habe vlt einedumme Frage , aber verstehe ich nicht ganz warum ichwenn ich ein Attribut vom Typ int habe diesen in meiner hashCode Methode erstmal zum Double konvertieren muss ?
Beispiel Code
public class Audio extends Medium {
private String interpret ;
private int dauer;
public Audio(String titel, int jahr , String interpret , int dauer) {
super(titel,jahr);
this.interpret=interpret;
this.dauer=dauer;
}
public String getInterpret() {
return interpret;
}
public int getDauer() {
return dauer;
}
public void druckeDaten() {
System.out.println("ID = " + super.getId() + " " + super.getTitel() + " von " + this.getInterpret() + " aus " + super.getJahr() + " Spieldauer:" + this.getDauer() + " sek.");
}
public boolean equals(Object obj) {
if(obj==null || !(obj instanceof Audio)) {
return false;
}
Audio newAudio = (Audio)obj;
if(this.getTitel().equals(newAudio.getTitel()) && this.getJahr()==newAudio.getJahr() && this.interpret.equals(newAudio.interpret)&& this.dauer==newAudio.dauer) {
return true;
}else
return false;
}
public int hashCode() {
return super.hashCode() + 9* this.getInterpret().hashCode() + new Double(this.dauer).hashCode();
ich danke euch schon mal im Voraus
ich habe vlt einedumme Frage , aber verstehe ich nicht ganz warum ichwenn ich ein Attribut vom Typ int habe diesen in meiner hashCode Methode erstmal zum Double konvertieren muss ?
Beispiel Code
public class Audio extends Medium {
private String interpret ;
private int dauer;
public Audio(String titel, int jahr , String interpret , int dauer) {
super(titel,jahr);
this.interpret=interpret;
this.dauer=dauer;
}
public String getInterpret() {
return interpret;
}
public int getDauer() {
return dauer;
}
public void druckeDaten() {
System.out.println("ID = " + super.getId() + " " + super.getTitel() + " von " + this.getInterpret() + " aus " + super.getJahr() + " Spieldauer:" + this.getDauer() + " sek.");
}
public boolean equals(Object obj) {
if(obj==null || !(obj instanceof Audio)) {
return false;
}
Audio newAudio = (Audio)obj;
if(this.getTitel().equals(newAudio.getTitel()) && this.getJahr()==newAudio.getJahr() && this.interpret.equals(newAudio.interpret)&& this.dauer==newAudio.dauer) {
return true;
}else
return false;
}
public int hashCode() {
return super.hashCode() + 9* this.getInterpret().hashCode() + new Double(this.dauer).hashCode();
ich danke euch schon mal im Voraus