浅谈Java泛型及泛型的使用
程序员文章站
2022-04-21 10:34:44
浅谈Java泛型当做一些集合的统一操作的时候,需要保证集合的类型是统一的,此时需要泛型来进行限制。泛型的优点:数据安全、获取数据时效率比较高。给集合中的元素设置相同的类型就是泛型的基本需求。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为:泛型类、泛型接口、泛型方法。泛型的高阶使用:1、泛型类在定义类的时候在类名的后面添加&...
浅谈Java泛型
当做一些集合的统一操作的时候,需要保证集合的类型是统一的,此时需要泛型来进行限制。
泛型的优点:数据安全、获取数据时效率比较高。
给集合中的元素设置相同的类型就是泛型的基本需求。
泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为:
泛型类、泛型接口、泛型方法。
泛型的高阶使用:
1、泛型类
在定义类的时候在类名的后面添加<E、K、V、A>起到占位的作用,类中的方法的返回值类型和属性的类型都可以使用。
代码展示:
public class FanxingClass<A> {
private int id;
private A a;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public A getA() {
return a;
}
public void setA(A a) {
this.a = a;
}
public void show(){
System.out.println("id:"+id+" a:"+a);
}
}
输出结果:
2、泛型接口
在定义接口的时候,在接口的名称后添加<E、K、V、A、B>
(1)子类在进行实现的时候,可不填写泛型的类型,此时在创建具体的子类对象的时候才决定使用什么类型。
此时实现类时传递的是什么类型,泛型里面放的就是什么类型。
(2)子类在实现泛型接口时,只在实现父类的接口的时候指定父类的泛型类型即可,此时,测试方法中的泛型必须要和子类保持一致。
输出结果:
3、泛型方法
在定义方法的时候,指定方法的返回值和参数是自定义的占位符,可以是类名的T。也可以是自定义的Q,只不过在使用Q时需要使用<Q>定义在返回值前面。
public class FanxingMethod<T> {
private T t;
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
public <Q> void show(Q q){
System.out.println(q);
System.out.println(t);
}
}
输出结果:
本文地址:https://blog.csdn.net/junxunfs/article/details/107676679