Methode überladen - Array List

MayR42

Mitglied
Hallo zusammen!

Ich möchte eine Methode wie folgt überladen:
Leider klappt es mit mit dem ersten Übergabeparameter nicht (VTermin vs. DData).
Was mache ich falsch? Oder geht es gar nicht?

Java:
public boolean setTag(ArrayList<VTermin> termin, int wert){
        boolean status = false;
       
        if(termin != null)
            for (int loopTermin = 0; loopTermin < termin.size(); loopTermin++) {
                if(this.setTag(termin.get(loopTermin), wert))
                    status = true;
                else
                    status = false; 
            }
       
        return status;
    }
   
    public boolean setTag(ArrayList<DData> termin, int wert){
        boolean status = false;
       
        if(termin != null)
            for (int loopTermin = 0; loopTermin < termin.size(); loopTermin++) {
                if(this.setTag(termin.get(loopTermin), wert))
                    status = true;
                else
                    status = false; 
            }
       
        return status;
    }
 
@JStein52: DData und VTermin sind eigene Klassen.
Ziel von den Methoden ist, Termine in eine Struktur einzutragen. Das Terminformat, also der Übergabeparameter, kann sich dabei unterscheiden (DData vs. VTermin). Aber wenn das nicht geht muss ich mir was anderes überlegen.

Ja, die Methoden machen das selbe. Zu den beiden Methoden habe ich noch weitere...

Kann man das irgendwie eleganter lösen?

Java:
public boolean setTag(String wochenTag, int startZeit, int dauer, int wert){
        return woche[wochenTagToTagIndex(wochenTag)].setSlot15Min(startZeit, dauer, wert);
    }
  
    public boolean setTag(int wochenTag, int startZeit, int dauer, int wert){
        return woche[wochenTag].setSlot15Min(startZeit, dauer, wert);
    }
  
    public boolean setTag(VeranstaltungsTermin termin, int wert){
        return this.setTag(termin.getTag(), termin.getStart(), termin.getDauer(), wert);
    }
 
Benenn die entsprechenden Methoden einfach anders, wenn die Objekte nichts miteinander zu tun haben.

Alternativ ein gemeinsames Interface für beide, und mit diesem arbeiten.
 

Zurück
Oben