栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何将arrayList的元素传递给可变参数函数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何将arrayList的元素传递给可变参数函数

做就是了:

new SequenceEntityModifier(arr.toArray(new IEntityModifier[arr.size()]));

它将复制

ArrayList
到给定的数组并返回它。所有vararg函数也可以为该参数采用数组,因此适用于:

public void doSomething(Object... objs)

所有合法电话为:

doSomething(); // Empty arraydoSomething(obj1); // One elementdoSomething(obj1, obj2); // Two elementsdoSomething(new Object[] { obj1, obj2 }); // Two elements, but passed as array

一个警告:

涉及原始数组的Vararg调用无法正常工作。例如:

public static void doSomething(Object... objs) {    for (Object obj : objs) {        System.out.println(obj);    }}public static void main(String[] args) {    int[] intArray = {1, 2, 3};    doSomething(intArray);}

有人可能会想到这个打印

1
2
以及
3
,在不同的行。相反,它会打印类似的内容
[I@1242719c
(的默认
toString
结果
int[]
)。这是因为它最终将创建
Object[]
一个元素,这是我们的
int[]
,例如:

// Basically what the pre above was doingObject[] objs = new Object[] { intArray };

这同样适用于

double[]
char[]
和其他原始数组类型。请注意,只需将类型更改为
intArray
即可解决此问题
Integer[]
。如果您正在使用现有数组,这可能并不简单,因为您不能
int[]
直接将an转换为。
Integer[]
,我特别喜欢Apache
Commons Lang
ArrayUtils.toObject
方法)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/497092.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号