java 動態調節引數個數

2021-09-19 14:49:20 字數 2288 閱讀 1903

今天看原始碼,突然發現有個方法的型別為 public void functionname(paramttype... paramtname) ,不明白是什麼意思 ,通過呼叫才知道這種方法的引數是可以動態調節的 ,就是我可以同型別的引數傳無數個過來 ,話不多說,直接上**

public static int sum(int a, int... s) 

return a;

}

這是乙個很簡單的方法 ,就是把傳進來的引數相加,接下來我們看看怎麼呼叫

public static void main(string args)
注意:同乙個方法我們傳了不同個數的引數 ,編譯器沒有報錯

有朋友們肯定該問了 ,過載方法不是可以實現嗎 ,但是我要告訴你們的是過載的話,只能你定義的方法可以呼叫,做不到這麼智慧型的呼叫,

呼叫結果:

a = 1

b = 3

c = 6

d = 10

e = 15

下面是字串的兩個方法

/**

* 可以傳遞 任意多個 字串 不傳也可以

* @param strs

* @return

*/public static string add(string... strs)

return sbu.length() == 0 ? null : sbu.tostring();

} /**

* 可以傳遞 任意多個 字串 不傳也可以

* @param strs

* @return

*/public static string adds(string... strs)

} return sbu.length() == 0 ? null : sbu.tostring();

}

看下呼叫:

public static void main(string args)
列印 結果:

str1 = null

str2 = 我

str3 = 我是

str4 = 我是中

str5 = 我是中國

str6 = 我是中國人

完整demo:

public class demo );

//傳遞乙個引數

string strs3=adds(new string,new string);

//傳遞乙個引數

string strs4=adds(new string,new string,new string);

//傳遞乙個引數

string strs5=adds(new string,new string,new string,new string);

//傳遞乙個引數

string strs6=adds(new string,new string,new string,new string,new string);

system.out.println("strs1 = "+strs1);

system.out.println("strs2 = "+strs2);

system.out.println("strs3 = "+strs3);

system.out.println("strs4 = "+strs4);

system.out.println("strs5 = "+strs5);

system.out.println("strs6 = "+strs6);

}public static int sum(int a, int... s)

return a;

} /**

* 可以傳遞 任意多個 字串 不傳也可以

* @param strs

* @return

*/public static string add(string... strs)

return sbu.length() == 0 ? null : sbu.tostring();

} /**

* 可以傳遞 任意多個 字串 不傳也可以

* @param strs

* @return

*/public static string adds(string... strs)

} return sbu.length() == 0 ? null : sbu.tostring();

}}

Java可變引數個數方法

jdk5.0新特性 可變個數形式引數 1.可匹配0至多個引數 2.可與其他同名方法構成過載 3.與陣列的使用方法一直,只是多了 沒有引數 4.若要加入其它型別的引數,要寫在可變個數形參之前 class nulltomulvar public int comein0 因為已經存在comein0 方法,...

引數個數可變的函式

今天突然想起引數個數可變的函式,然後想了下,覺得自己還真不太了解它,遂決定弄清楚。1.如何取得可變引數 比如 void f int fixpara1,char p char fixpara1 取得固定引數位址 cout int p 為什麼p 4可以取到第乙個可變引數呢?因為引數在函式被呼叫前,會逐個...

可變引數個數的函式

type vafunction type arg1,type arg2,引數可以分為兩部分 個數確定的固定引數和個數可變的可選引數。函式至少需要乙個固定引數,固定引數的宣告和普通函式一樣 可選引數由於個數不確定,宣告時用 表示。固定引數和可選引數公同構成乙個函式的引數列表。標準c c 包含標頭檔案s...