一.不使用泛型的容器
在JavaSE5之前,Java中是没有泛型这一概念的,那么容器没有泛型怎么使用呢?
代码如下:
ArrayList apples = new ArrayList();// 没有使用泛型 apples.add(new Apple());// 集合可以添加Apple对象 apples.add(new Car());// 也可以添加Car对象
在没有使用泛型是这个ArrayList类型的实例对象既可以加入Apple对象也可以加入Car对象类。
当我们明确的获得一个集合对象并且知道其类型时,可以没有问题的对其对象进行操作。
但是当我们在集合中拥有大量元素时遍历集合,并且我们自己也不知道取得的元素时哪一个类的对象时,那么就会出现问题。
通常我们可以使用关键字instanceof关键字来判断取得对象的类型然后进行操作代码如下:
public static void main(String[] args) { ArrayList apples = new ArrayList();// 没有使用泛型 apples.add(new Apple());// 集合可以添加Apple对象 apples.add(new Car());// 也可以添加Car对象 apples.add(new Car()); apples.add(new Car()); apples.add(new Car()); apples.add(new Car()); apples.add(new Car()); System.out.println(apples.size()); for(int i=0;i<apples.size();i++) { if(apples.get(i)instanceof Apple) {//匹配Apple类时 System.out.println(i+"号对象是苹果"); }else { System.out.println(i+"号对象是车"); } } }