Ähnliche Funktionen vereinfachen



  • Ich habe zwei Funktionen die fast das Gleiche machen.

    public void setVariable (Variable v, double value) throws BASICRuntimeError
    {
       ... 
       vi.setValue(value, ii); // überladene Funktion für double 
    }
    

    und

    public void setVariable (Variable v, String value) throws BASICRuntimeError
    {
       ...
       vi.setValue(value, ii); // überladene Funktion für String
    }
    

    Die ... sind hier Platzhalter für identischen Code. Meine IDE beschwert sich, dass die Funktionen kaum unterschiedlich sind (da hat sie ja auch Recht).

    Gibt es eine Möglichkeit, beide zusammenzufassen?
    Eine fällt mir ein: den identischen Code in eine private Memberfunktion zu verschieben. Aber gibt es etwas besseres? Etwa mit den Features von Java 1.8?

    Danke schon mal ...
    Ist für euch sicher trivial. 🙂



  • Entweder den gemeinsamen code in eine weitere methode auslagern oder Generics verwenden, was hier wohl eher angebracht wäre.



  • Ich glaube Generics sind das Stichwort. Muss ich mich mal ausführlicher damit beschäftigen.



  • Ich habe jetzt eine gemeinsame Funktion:

    public <T> void setVariable (Variable v, T value) throws BASICRuntimeError
    

    soweit zumindest compiliert es. Aber in der davon aufgerufenen setValue-Funktion muss ich mit instanceof das Argument wieder aufsplitten. Gibt es dafür einen Automatismus, oder ist das das Ende der Fahnenstange?


Log in to reply