Optionale Funktionsparameter?

syscon

Mitglied
Hallo,

kann man in Java opionale Funktionsparameter verwenden.

Also wenn z.B. nichts angegeben wurde das man für die Funktion a=0, b=0 einsetzt?

Java:
public void meineFunktion(int a, int b){


}
 

HimBromBeere

Top Contributor
Du kannst nur die Funktion überladen, also eine ohne Parameter, eine mit a, eine mit b und eine mit a und b. Sinnvollerweise würdest du dann den "unvollständigen" Funktionsdefinitionen einfach eine Weiterleitung an die ausführliche Funktionsdefinition machen, wobei du als Parameter dann z.B. a = 0 und b = 0 angibst...
 

Landei

Top Contributor
Es ist nicht besonders hübsch, aber solange die Parameter alle den gleichen Typ haben, kannst du Varargs dafür missbrauchen, in deinem Fall:

Java:
public void meineFunktion(int... args){
   if (args.length > 2) throw new UnsupportedOperationException();
   int a = args.length > 0 ? args[0] : 0;
   int b = args.length > 1 ? args[1] : 0;
   ...
}

Natürlich besteht die Gefahr, dass dann der Nutzer mehr Parameter übergibt, als erlaubt sind. Ich denke mehrere kaskadierte Methoden sind die bessere Lösung:

Java:
public void meineFunktion(){
   meineFunktion(0);
}

public void meineFunktion(int a){
   meineFunktion(a, 0);
}

public void meineFunktion(int a, int b){
   //die eigentliche Implementierung
}
 

Ähnliche Java Themen

Neue Themen


Oben