2013-10-08 2 views
0

제 코드에는 4 개의 매개 변수를 사용하는 메서드가 있습니다. 하지만 어딘가에 코드에서 나는 때로는 2, 때로는 4 매개 변수와 함께이 방법을 호출합니다. 따라서 2 개의 매개 변수를 호출하면 마지막 2 개의 매개 변수가 자동으로 null이됩니다. 예를 들어메서드 null 매개 변수 오버로드

:

public static void x(String one,String two,String three=null,String four=null){ 

//do something hear 

} 

x("one","two"); 
x("one","two","three","four"); 

제가

X 전화 ("하나", "2")은 => I가 원하는 셋, 넷 파라미터 automatticaly 널로 초기화있다.

어떻게 할 수 있습니까? 도움을 주셔서 감사합니다.

+0

'방법 Overloading'이 당신의 친구입니다. –

+0

Java는 기본 매개 변수를 지원하지 않습니다. ( – Maroun

+0

@MarounMaroun 기본 매개 변수를 지원하지 않지만 무한 매개 변수를 지원합니다. do (String ... strings) – RamonBoza

답변

3
class A{ 

    public void do(String a, String b, String c, String d){ 
     //do something 
    } 

    //Overload do method 
    public void do(String a, String b){ 
     do(a,b,null,null); 
    } 
} 
+0

답장을 보내 주셔서 감사합니다. 유용하지만 코드에서 두 개의 매개 변수가 필요하다는 것을 잊어 버렸습니다. 그래서 구멍 코드를 변경할 수 없습니다. 기본 매개 변수로 응답이 필요합니다 :/ –

+0

@BatuhanBardak 네, 네 개의 매개 변수 메서드를 만들 수 있습니다. 전체 코드를 복사 한 다음 2 매개 변수 방법을 사용하여 4 코드를 호출하십시오. – RamonBoza

0

최선의 선택은 당신 만이 매개 변수를 전달 널 (null)로 다른 두 매개 변수를 전달해야 할 바로 그 때, 단지 4 개 개의 매개 변수와 방법을 유지하는 것입니다.

x(a,b,null,null); 

을 4 PARAMS 통할 :

2 PARAMS 예제 패스

x(a,b,c,d); 
0

이 아니라 작동 파라미터로서 문자열 배열을 사용하여 호출 될 수 있고, 또는 다수의 쉼표 분리 된 문자열. 이렇게하면 과부하 할 필요가 없습니다.

public void myMethod(String ...strings) { 
    for (String string : strings) { 
     //do something with the string 
    } 
} 

당신은 배열을 사용하여 호출 할 수 있습니다 :

myMethod(new String[]{"test1", "test2"}) 

또는 여러 개의 문자열

을 :

myMethod("test1", "test2"); 
myMethod("test1", "test2", "test3", "test4"); 
관련 문제