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

Wie kann ich optionale Parameter in Java implementieren?

Barbara Streisand
Freigeben: 2024-12-21 12:01:10
Original
205 Leute haben es durchsucht

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");
Nach dem Login kopieren

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);
Nach dem Login kopieren

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);
Nach dem Login kopieren

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());
Nach dem Login kopieren

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();
Nach dem Login kopieren

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")); 
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage