class VarAgs{ // variable length parameters static void vaTest(String ... str){ System.out.println(str.length + " contains : "); for(String s:str){ System.out.print(s+" "); } System.out.println(); } public static void main(String[] args) { String s1[] = {"hi","hello"}; vaTest(s1); vaTest(s1 + " 1 "); }}輸出:2 contains : hi hello 1 contains : [Ljava.lang.String;@2a139a55 1
3 回答
揚(yáng)帆大魚
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊
當(dāng)您將數(shù)組與字符串連接時(shí)
vaTest(s1 + " 1 ");
然后對(duì)數(shù)組的引用轉(zhuǎn)換為字符串
[Ljava.lang.String;@2a139a55
所以方法 vaTest 將收到
[Ljava.lang.String;@2a139a55 1
作為一個(gè)大小為 1 的數(shù)組。
HUWWW
TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
它的工作原理如下:
s1被隱式轉(zhuǎn)換為 String(s1.toString()),這會(huì)導(dǎo)致[Ljava.lang.String;@2a139a55.接下來(lái),將字符串
1添加到上述字符串中。這導(dǎo)致[Ljava.lang.String;@2a139a55 1接下來(lái),這個(gè)生成的字符串在 String[] 類型的單元素?cái)?shù)組中傳遞給
varargs()函數(shù)。
添加回答
舉報(bào)
0/150
提交
取消
