在水木上看到的問題
          int[] intArray = new int[]{1, 2, 3, 4};
          List>Integer< list = new ArrayList>Integer<();
          list.add(1);
          list.add(2);
          list.add(3);
          list.add(4);
          List listFromArray = Arrays.asList(intArray);
          System.out.println(listFromArray);
          System.out.println(list);
          輸出結果是
          [[I@c17164]
          [1, 2, 3, 4]
          也就是說Arrays.asList()并沒有返回一個{1,2,3,4}的List
          原因在于,JDK5中asList接受變長參數(shù)表了,把intArray作為單獨的參數(shù)傳遞給asList方法的時候,編譯器會把它當作一個Object處理,于是返回了只有一個元素的List,而這個元素應該就是指向int[]的引用。
          解決方法之一是把intArray聲明為Integer[],即
          Integer[] intArray = new Integer[]{new Integer(1), new Integer(2), new Integer(3), new Integer(4)};
          List>Integer< listFromArray2 = Arrays.asList(intArray2);
          System.out.println(listFromArray2);
          這樣就能看到預期結果了

          posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          Java notes - 關于ArrayList.asList()方法

          Posted on 2007-04-22 20:26 ZelluX 閱讀(849) 評論(0)  編輯  收藏 所屬分類: OOP
          2007-04-20 11:48:48
          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 万宁市| 临海市| 久治县| 游戏| 肥西县| 云梦县| 马山县| 合江县| 新乡市| 中牟县| 闸北区| 贵阳市| 集贤县| 张北县| 平江县| 二连浩特市| 大竹县| 买车| 周宁县| 客服| 徐闻县| 拉萨市| 凤阳县| 神农架林区| 灌云县| 来宾市| 丹棱县| 宝鸡市| 青河县| 滦平县| 新和县| 泽库县| 墨竹工卡县| 山东| 改则县| 汝城县| 会昌县| 康平县| 岚皋县| 湘阴县| 互助|