码迷,mamicode.com
首页 > 编程语言 > 详细

java Arrays.asList 问题

时间:2017-06-17 15:14:44      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:教材   语言   doc   lan   targe   span   apache   void   common   

1.问题

public static void asList() {
        System.out.println(Arrays.asList(new String[] { "a", "b" }));

        System.out.println(Arrays.asList(new Integer[] { 1, 2 }));

        System.out.println(Arrays.asList(new int[] { 1, 2 }));  
        System.out.println(Arrays.asList(new Object[] { new int[] { 1, 2 } }));
       System.out.println(Arrays.asList(new String[] { "a", "b" }, "c"));

     //正确方式 apache common lang
      System.out.println(Arrays.asList(ArrayUtils.toObject(new int[] { 1, 2 })));

}

[a, b]
[1, 2]
[[I@45283ce2]

[[I@2077d4de]

[[Ljava.lang.String;@2077d4de, c]

[1, 2]

Java语言规范规定了调用一个声明为foo(T… t)的方法,比如foo(new T[]{bar,baz})等同于foo(bar,baz)这样的调用。在Arrays.asList方法中T是参数类型,

因此它必须为一个Object 类型,但是int不是,而int[]却是。Arrays.asList作为一个反面教材,告诉了我们在使用Java的可变参数设计API时为什么要非常小心。

 

参考:

http://www.importnew.com/14996.html

 

java Arrays.asList 问题

标签:教材   语言   doc   lan   targe   span   apache   void   common   

原文地址:http://www.cnblogs.com/yuyutianxia/p/7040113.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!