2012-03-20 200 views
2

嗨,有沒有什麼辦法讓我可以傳遞可變參數給方法?將可變參數傳遞給方法

public void unMarshalling(String type, int number){ 

} 

,使不是int,我可以讓我的方法,使得我能夠在浮動,雙,字符串等基本數據類型(+弦)通過。任何簡單的例子將深受讚賞!非常感謝!

+2

你的意思是:可變數量的參數或* generic *可變參數(可以是任何東西)? – 2012-03-20 04:09:13

+0

也許'public void example(Object a){}'可以做到嗎? – 2012-03-20 04:12:45

回答

12

試試這個:

public void unMarshalling(Object ... params) { 

} 

現在,你可以通過任何數量的任何類型的參數:

unMarshalling(23); 
unMarshalling("Hello"); 
unMarshalling("Hello", 45.3); 
0
public void unMarshalling(String a, int b){} 
public void unMarshalling(String a, float b){} 
public void unMarshalling(String a, double b){} 
public void unMarshalling(String a, String b){} 

它會知道調用基於其類型之一。如果真的只有一個函數,你可以把它的'肉'放在String/int中,然後在String/float中,你可以將float轉換爲一個int,並且調用String/int。

public void unMarshalling(String a, float b) 
{ 
    unMarshalling(a,(int)b); 
} 
0

Java有VAR-ARGS功能,這意味着你可以通過在給定類型實例VAR-ARGS任意數量的說法 -

public void myMethod(int...args) 
{ 
} 

,你可以把這個作爲如下方法 -

myMethod(3); 

或myMethod(3,4);

或myMethod(3,65,74);等等。

您可以指定除int以外的任何類型的參數。

如果您有多個參數,請保留var-args作爲最後一個參數。