关于JAVA 5可变参数
最近在用Arrays的asList()生成的List时,List元素的个数时而不正确。
?
?
输出结果为:
传递char数组:内容:[[C@defa1a]数组长度:1 直接传递:内容:[a, b, c, d, e]数组长度:5 ----------------------------传递int数组:内容:[[I@f5da06]数组长度:1 直接传递:内容:[1, 2, 3, 4, 5, 6, 7]数组长度:7 ----------------------------传递Integer数组:内容:[1, 2, 3, 4, 5, 6, 7]数组长度:7 直接传递:内容:[1, 2, 3, 4, 5, 6, 7]数组长度:7 ----------------------------传递String数组:内容:[a, b, c, d, e]数组长度:5 直接传递:内容:[a, b, c, d, e]数组长度:5 ----------------------------java 5 可变参数,直接传递值与传递数组处理的机制不太相同。
?
如果直接传递数组,基本类型数组将被视为一个对象而不会被解析成数组,如果直接传递参数将能正常解析。因此传递基本类型数组时强烈建议转为其封装类对象的数组 ?int ->Integer ,long->Long …………。
?