festgelegte Parameter

Ape50

Mitglied
Hey,
hab hier und bei google leider nix gefunden....

wie kann ich in einer methode einen festgelegten parameter übergeben, so dass ich die methode mit und ohne diesen parameter aufrufen kann?

gemeint ist sowas:

private int meinefunktion(int x, boolean besonders=false){
if(besonders)return 100;
return x;
}
 
Gar nicht. Du kannst die Methode höchstens überladen
Java:
private int func(int x, boolean b) {
    return b ? 100 : x;
}

private int func(int x) {
    return func(x, false);
}
 
Java:
private int meinefunktion(int x) {
    meinefunktion(x, false);
}
private int meinefunktion(int x, boolean besonders) {
    if (besonders) return 100;
    return x;
}

Da war der @Robat mal wieder schneller.
 
hmm, ok danke. das ist ja doof. das löst mein problem leider nicht...

das ging aber doch mal oder verwechsel ich das mit ner anderen sprache?
 
naja ich hab halt ne methode geschrieben die mir buttons erzeugt. jetzt möchte ich unter bestimmten umständen, dass die buttonfarbe anders ist. das einfachste wäre jetzt die methode zu verwenden so wie ichs beschrieben habe. wenn ich da nen parameter dazuhaue muss ich ja den ganzen schon geschriebenen code ändern... und ne neue methode zu schreiben, die das gleiche macht is irgendwie nich wirklich objektorientiert...
 
Schau dir mal mein Beispiel an. Da macht die Methode nicht genau das gleiche sondern ruft deine bestehende Methode nur mit einem bestimmten Parameter auf. Sollte doch eigentlich passen
 
Man könnte übrigens auch varargs missbrauchen:
Java:
private int meinefunktion(int x, boolean... besonders){
    boolean value = besonders != null && besonders.length > 0 ?
            besonders[0] : false;
    ...
}
oder mit Optional arbeiten:
Java:
private int meinefunktion(int x, Optional<Boolean> besonders) {
    boolean value = besonders.orElse(false);
}
 
Das zweite würde ja aber nicht verhindern, dass er einen zusätzlichen Parameter angibt.
Varargs *missbrauchen* trifft es ganz gut 😀
 

Zurück
Oben