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


          網站導航:
           
          主站蜘蛛池模板: 淮南市| 三台县| 白银市| 锡林浩特市| 秀山| 抚远县| 个旧市| 深水埗区| 启东市| 建始县| 佛坪县| 湟源县| 建湖县| 太和县| 鹤壁市| 丰顺县| 江永县| 英山县| 应城市| 全南县| 宣化县| 民和| 眉山市| 象山县| 西安市| 崇仁县| 靖远县| 西峡县| 石嘴山市| 昭觉县| 九台市| 洛川县| 鄂托克旗| 吉木乃县| 金华市| 平湖市| 巢湖市| 泰顺县| 嘉定区| 仪征市| 黄山市|