Heim >Java >javaLernprogramm >Wie kann ich optionale Parameter in Java implementieren?

Wie kann ich optionale Parameter in Java implementieren?

Barbara Streisand
Barbara StreisandOriginal
2024-12-21 12:01:10163Durchsuche

How Can I Implement Optional Parameters in Java?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn