※ 引述《tnsshnews (tnsshnews)》之銘言:
: 今天看到別人的程式碼在arraylist裡面的class
: 放一個String[], 如下
: ArrayList<String[]> aaa = new ArrayList<String[]>();
: 請問這樣是可以的嗎?
: 會很怪嗎?
: 印象中沒有看過有人這樣寫, 謝謝
這只是好玩 ^.<
ArrayList<ArrayList> a = new ArrayList<>();
ArrayList<ArrayList> b = new ArrayList<>();
ArrayList<ArrayList> c = new ArrayList<>();
ArrayList<String> d = new ArrayList<>();
d.add("HELLO");
c.add(d);
b.add(c);
a.add(b);
String s= (String) ((ArrayList<ArrayList>) a.get(0).get(0)).get(0).get(0);
System.out.println(s);
容器物件(Collection)裡面放的東西其實是 Object
泛型是語法糖,他會在你取出物件時幫你轉形成你尖括弧<>中的型別
像是藍色那個a.get(0) 取出來後會是ArrayList
因為沒指定泛型,所以相當於ArrayList<Object>
亮藍色的.get(0)取出來後是Object,所以還要轉型才會變成 ArrayList<ArrayList>
不過實務上請不要塞多層,那會讓維護的人很想砍人