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

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

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개부터 여러개까지 유동적으로 올수 있다는 뜻입니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.