package com.wq.generic泛型.improve;
import java.util.ArrayList;
public class generic泛型01 {
public static void main(String[] args) {
ArrayList arrayList = new ArrayList();
arrayList.add(new dog("king",1));
arrayList.add(new dog("god",2));
arrayList.add(new dog("sky",3));
//不小心传入一只猫
arrayList.add(new cat("妞妞",1));
//在下面就是出现 一个类型异常
for (Object o :arrayList) {
dog o1 = (dog) o;//异常
//解决使用泛型
System.out.println(o1.toString());
}
}
}
class dog {
private String name;
private int age;
public dog(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "dog{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
class cat {
private String name;
private int age;
public cat(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "dog{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
dog{name='king', age=1}
dog{name='god', age=2}
dog{name='sky', age=3}
Exception in thread "main" java.lang.ClassCastException: com.wq.generic泛型.improve.cat cannot be cast to com.wq.generic泛型.improve.dog
at com.wq.generic泛型.improve.generic泛型01.main(generic泛型01.java:16)