您正在使用陈旧(Internet Explorer 6)浏览网页,如果您升级到. Internet Explorer 8 转换到另一个浏览器,本站 将能为您提供更好的服务。了解如何更新您的浏览器.
X
Articles

警告;Java数组转换成列表-要小心!

大气 时尚 另类 设计 FLASH

遗憾的是没有的一切,应该是微不足道的,实际上是。一个例子是Java数组转换列表当然,有Arrays.toList,但使用这种方法不小心将几乎肯定会导致讨厌的惊喜。要明白我的意思考虑下面的程序,并试图预测其输出:

01 <font><font>包com.wordpress.mlangc.arrays;</font></font><font></font>
02 <font></font><font><font>
03 进口java.util.Arrays;</font></font><font></font>
04 <font></font><font><font>
05 公共类ArraysToList的</font></font><font></font><font><font>
06 {</font></font><font></font><font><font>
07     公共静态无效的主要(最后的String [] ARGS)</font></font><font></font><font><font>
08     {</font></font><font></font><font><font>
09         system.out.println(</font></font><font></font><font><font>
10                 Arrays.asList(新的String [] {“A”,“B”}));</font></font><font></font>
11         <font></font><font><font>
12         system.out.println(</font></font><font></font><font><font>
13                 Arrays.asList(新的Integer [] {12}));</font></font><font></font>
14         <font></font><font><font>
15         system.out.println(</font></font><font></font><font><font>
16                 Arrays.asList(新的int [] {12}));</font></font><font></font>
17         <font></font><font><font>
18         system.out.println(</font></font><font></font><font><font>
19                 Arrays.asList(新的String [] {“A”,“B”},“C”));</font></font><font></font><font><font>
20     }</font></font><font></font><font><font>
21 }</font></font><font></font>

至于Javadocs中Arrays.asList是相当含糊的,我可以不怪你有一个结论,未来的一些困难,所以这里是答案一步一步:如果你转换到一个列表转换为一个字符串,而不是使用Arrays.toString。它做什么,你希望所有的时间,也基本类型数组。如果你要转换的类型数组盒装原语列表,利用优势的Apache Commons Lang的,其中最有可能是你的项目的依赖已经无论如何,使用ArrayUtils.toObject像这样最有可能是你的项目的依赖已经无论如何,使用ArrayUtils.toObject像这样:

<font><font>名单<整数>列表Arrays.asList(ArrayUtils.toObject的(新的int [] {12}));
</font></font>

注意:盒装原语的名单,但是,不应该一般可超过包含基本类型数组的首选。如果你想转换一个对象引用数组,直接使用Arrays.asList

<font><font> 名单<String>的名单= </font></font><font></font><font><font>
           Arrays.asList(新的String [] {“A”,“B”});</font></font><font></font>

不要忘记,以确保你一起工作的人不会效仿你不小心。

当然,你也可以选择只记得Arrays.asList可能意外行为和使用,而不是普通的for循环,但你的代码,杂波和性能损失。-TVCD另类设计Flash

发表看法  

姓名 (必填)*

电子邮件 (不会被公开) (必填)*

网站

提交看法