我自我总结了一下,大家看对不对:
1. 泛型<>在定义类的时候,非常像一个宏
2. 在使用的时候,非常像一个隐式的强制转换
相当于Integer i2 = (Integer)al2.get(0);
因为预先定义了泛型<Integer> ,所以不用担心al2.get(0); 返回的是别的什么东西,肯定是Integer.
-------------------------------
Integer "is a " Object.
但是ArrayList<Integer> "is not a " ArrayList<Object> !
所以
ArrayList<Integer> al2 = new ArrayList<Integer>();
al2.add(new Integer(10));
Integer i2 = al2.get(0);
ArrayList<Object> alO = al2; //错误!这不是类可以向上转换, 这是泛型