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


          網站導航:
           
          主站蜘蛛池模板: 普安县| 广昌县| 哈尔滨市| 龙川县| 榆树市| 石城县| 宜良县| 桦甸市| 正阳县| 专栏| 喀喇沁旗| 河南省| 修武县| 沁阳市| 始兴县| 泾阳县| 洱源县| 府谷县| 江孜县| 新丰县| 黄冈市| 湖南省| 忻城县| 金山区| 噶尔县| 洪江市| 阿鲁科尔沁旗| 镇原县| 莱阳市| 和静县| 江阴市| 大荔县| 海林市| 万宁市| 枣强县| 监利县| 台山市| 都江堰市| 温宿县| 临朐县| 樟树市|