※ 引述《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>
不过实务上请不要塞多层,那会让维护的人很想砍人