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 回答
扬帆大鱼
TA贡献1799条经验 获得超9个赞
当您将数组与字符串连接时
vaTest(s1 + " 1 ");
然后对数组的引用转换为字符串
[Ljava.lang.String;@2a139a55
所以方法 vaTest 将收到
[Ljava.lang.String;@2a139a55 1
作为一个大小为 1 的数组。
HUWWW
TA贡献1874条经验 获得超12个赞
它的工作原理如下:
s1
被隐式转换为 String(s1.toString()
),这会导致[Ljava.lang.String;@2a139a55
.接下来,将字符串
1
添加到上述字符串中。这导致[Ljava.lang.String;@2a139a55 1
接下来,这个生成的字符串在 String[] 类型的单元素数组中传递给
varargs()
函数。
添加回答
举报
0/150
提交
取消