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!