자바에서 매개변수를 선택적으로 할 수 있을까요??


자바에서 매개변수를 선택적으로 줄 수 있을까요?? 무슨 말이냐면 매개변수를 줄수도 있고 안줄수도있고 int형을 주거나 String을 주거나해도 처리되게끔 하는게 가능한가요??

  • 2016년 01월 08일에 작성됨

조회수 275


1 답변


좋아요
0
싫어요
채택취소하기

네 가능해요~ 가변인수(varargs)를 쓰시든지 메소드 오버라이딩 하는 방법이 있어요.

메소드 오버라이딩

private boolean defaultOptionalFlagValue = true;

//매개변수가 boolean형일때 호출되는 doSomething()
public void doSomething(boolean optionalFlag) {
    ...
}


//매개변수가 없을때 호출되는 doSomething()
public void doSomething() {
    doSomething(defaultOptionalFlagValue);
}

똑같은 메소드를 원하는 매개변수마다 여러개 만들어주는건데요. 이런식으로 정의하고 호출을 doSomething()하시면 아래의 메소드가 doSomething(true)하시면 위의 메소드가 호출됩니다.

가변인수

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

가변인수는 foo의 두번째 매개변수 Integer... b 같은 ...이라고 쓰는데요. 그 뜻은 Integer 자료형이 0개부터 여러개까지 유동적으로 올수 있다는 뜻입니다.

  • 2016년 01월 08일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close