首頁 >Java >java教程 >如何在Java中實作可選參數?

如何在Java中實作可選參數?

Barbara Streisand
Barbara Streisand原創
2024-12-21 12:01:10205瀏覽

How Can I Implement Optional Parameters in Java?

Java 中的選用參數

選用參數可讓方法接收可變數量的參數。在 Java 中,有多種方法可以實現此行為:

方法重載

建立多個具有相同名稱但不同參數清單的方法。可選參數可以省略。

void foo(String a, Integer b) {
    //...
}

void foo(String a) {
    foo(a, 0); // Default value for b
}

foo("a", 2);
foo("a");

Varargs

使用可變長度參數清單來指定選用參數。可選參數的類型必須相同。

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);

Nulls

允許選用參數為空。檢查方法體中是否有 null 值。

void foo(String a, Integer b, Integer c) {
    b = b != null ? b : 0;
    c = c != null ? c : 0;
    //...
}

foo("a", null, 2);

Optional 類別

使用 Java 8 的Optional 類別來指示具有預設值的參數。

void foo(String a, Optional<Integer> bOpt) {
    Integer b = bOpt.isPresent() ? bOpt.get() : 0;
    //...
}

foo("a", Optional.of(2));
foo("a", Optional.empty());

建構器模式

建立一個單獨的具有用於可選參數的流暢設定器的建構器類別。

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();

映射

使用映射按名稱/值對傳遞可選參數。

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")); 

這些方法可以組合起來以滿足特定要求。

以上是如何在Java中實作可選參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn