在水木上看到的問題
          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
          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 东山县| 泉州市| 徐州市| 万盛区| 大田县| 富宁县| 盖州市| 聊城市| 安陆市| 奇台县| 宝应县| 丹巴县| 乡城县| 巴青县| 钦州市| 东乌| 哈密市| 泾川县| 雷州市| 高要市| 仪陇县| 揭阳市| 中阳县| 乃东县| 潜山县| 塘沽区| 隆昌县| 临江市| 邹平县| 马边| 西丰县| 登封市| 新平| 喀喇沁旗| 舞钢市| 驻马店市| 北安市| 梁山县| 潼关县| 桐梓县| 蓬安县|