Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Melaksanakan Parameter Pilihan di Jawa?

Bagaimanakah Saya Boleh Melaksanakan Parameter Pilihan di Jawa?

Barbara Streisand
Barbara Streisandasal
2024-12-21 12:01:10162semak imbas

How Can I Implement Optional Parameters in Java?

Parameter Pilihan dalam Java

Parameter pilihan membenarkan kaedah menerima bilangan argumen yang berubah-ubah. Terdapat beberapa cara untuk melaksanakan gelagat ini dalam Java:

Pemuatan Terlebih Kaedah

Buat berbilang kaedah dengan nama yang sama tetapi senarai argumen yang berbeza. Parameter pilihan boleh diabaikan.

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

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

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

Varargs

Gunakan senarai argumen panjang pembolehubah untuk menentukan parameter pilihan. Jenis parameter pilihan mestilah sama.

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

Batal

Benarkan parameter pilihan menjadi batal. Semak nilai nol dalam badan kaedah.

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

foo("a", null, 2);

Kelas Pilihan

Gunakan kelas Pilihan Java 8 untuk menunjukkan parameter dengan nilai lalai.

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

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

Corak Pembina

Buat pembina berasingan kelas dengan setter fasih untuk parameter pilihan.

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

Peta

Gunakan peta untuk menghantar parameter pilihan mengikut pasangan nama/nilai.

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

Pendekatan ini boleh digabungkan untuk memenuhi keperluan tertentu.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Parameter Pilihan di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn