1,为什么设计泛型?难道是以前的数据类型不够用吗?
问题:在设计的过程中经常会用到容器类,容器类代码都一样只是数据类型不同,如果能够让一种类型容纳所有类型,就可以实现代码重用,但是没有一种类型可以容纳所有类型,为了解决容器的问题,就需要设计泛型。
最主要的原因是要创建容器类。
2,泛型的定义?
泛型是不确定的类型。泛型是类型的参数。
3,引用类型做方法参数,泛型(通用)和接口作为方法参数是对比?
接口作为方法的参数时候,传进方法的必须是继承该接口的类。(多态)这样做还是限制了参数的类型。
泛型作为方法的参数,不用担心传进来的对象,所有对象都可以。
public class genericity <T> {
private T a;
public genericity(T a){this.a = a;};
public void set(T a){this.a = a;}
public T get(){return a;}
public static void main(String[] args) {
genericity <mobile> generic = new genericity<mobile>(new mobile());
mobile mob = generic.get();
//generic.set("not an antomobile");
}
}
class mobile{}
接口做参数:需要关心转型:向下转型,需要继承接口。
向上转型,需要转换成需要返回的类型。
public class genericity {
private Object a;
public genericity(Object a){this.a = a;};
public void set(Object a){this.a = a;}
public Object get(){return a;}
public static void main(String[] args) {
genericity generic = new genericity(new mobile());//a变成mobile类型
mobile mob = (mobile)generic.get(); //需要强制类型转换。
generic.set("not mobile"); //a变成String
String str = (String)generic.get();
}
}
class mobile{}