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);
Null
선택적 매개변수가 null이 되도록 허용합니다. 메소드 본문에서 null 값을 확인하세요.
void foo(String a, Integer b, Integer c) { b = b != null ? b : 0; c = c != null ? c : 0; //... } foo("a", null, 2);
Optional Class
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!