Heim >Java >javaLernprogramm >Wie kann ich optionale Parameter in Java implementieren?
Optionale Parameter in Java
Optionale Parameter ermöglichen es Methoden, eine variable Anzahl von Argumenten zu empfangen. Es gibt mehrere Möglichkeiten, dieses Verhalten in Java zu implementieren:
Methodenüberladung
Erstellen Sie mehrere Methoden mit demselben Namen, aber unterschiedlichen Argumentlisten. Optionale Parameter können weggelassen werden.
void foo(String a, Integer b) { //... } void foo(String a) { foo(a, 0); // Default value for b } foo("a", 2); foo("a");
Varargs
Verwenden Sie Argumentlisten variabler Länge, um optionale Parameter anzugeben. Der Typ der optionalen Parameter muss derselbe sein.
void foo(String a, Integer... b) { Integer b1 = b.length > 0 ? b[0] : 0; Integer b2 = b.length > 1 ? b[1] : 0; //... } foo("a"); foo("a", 1, 2);
Nullwerte
Optionale Parameter dürfen null sein. Suchen Sie nach Nullwerten im Methodenkörper.
void foo(String a, Integer b, Integer c) { b = b != null ? b : 0; c = c != null ? c : 0; //... } foo("a", null, 2);
Optionale Klasse
Verwenden Sie die optionale Klasse von Java 8, um Parameter mit Standardwerten anzugeben.
void foo(String a, Optional<Integer> bOpt) { Integer b = bOpt.isPresent() ? bOpt.get() : 0; //... } foo("a", Optional.of(2)); foo("a", Optional.empty());
Builder-Muster
Erstellen Sie eine separate Builder-Klasse mit Fluent Setter für optionale Parameter.
class Foo { private final String a; private final Integer b; Foo(String a, Integer b) { this.a = a; this.b = b; } //... } class FooBuilder { private String a = ""; private Integer b = 0; FooBuilder setA(String a) { this.a = a; return this; } FooBuilder setB(Integer b) { this.b = b; return this; } Foo build() { return new Foo(a, b); } } Foo foo = new FooBuilder().setA("a").build();
Maps
Verwenden Sie eine Map, um optionale Parameter anhand von Name/Wert-Paaren zu übergeben.
void foo(Map<String, Object> parameters) { String a = ""; Integer b = 0; if (parameters.containsKey("a")) { a = (String) parameters.get("a"); } if (parameters.containsKey("b")) { b = (Integer) parameters.get("b"); } //... } foo(Map.of("a", "a", "b", 2, "d", "value"));
Diese Ansätze können entsprechend den spezifischen Anforderungen kombiniert werden.
Das obige ist der detaillierte Inhalt vonWie kann ich optionale Parameter in Java implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!