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

Bagaimanakah Saya Boleh Melaksanakan Parameter Pilihan di Jawa?

Barbara Streisand
Lepaskan: 2024-12-21 12:01:10
asal
158 orang telah melayarinya

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");
Salin selepas log masuk

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);
Salin selepas log masuk

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);
Salin selepas log masuk

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());
Salin selepas log masuk

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();
Salin selepas log masuk

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")); 
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan