在水木上看到的問題
          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接受變長參數表了,把intArray作為單獨的參數傳遞給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 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

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

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


          網站導航:
           
          主站蜘蛛池模板: 赤城县| 西峡县| 兴海县| 新竹县| 四平市| 布尔津县| 荆门市| 宜都市| 荔浦县| 银川市| 阿克| 宽城| 东源县| 剑阁县| 蒲江县| 资中县| 宿松县| 通河县| 漳浦县| 扬州市| 平谷区| 宁都县| 迁安市| 垦利县| 赫章县| 东乡县| 股票| 莒南县| 敖汉旗| 常德市| 偏关县| 临武县| 海城市| 汉川市| 监利县| 万盛区| 都江堰市| 临安市| 常山县| 原平市| 称多县|