浅谈Java泛型及泛型的使用

左手的ㄟ右手 2023-03-02 14:57 143阅读 0赞

浅谈Java泛型

当做一些集合的统一操作的时候,需要保证集合的类型是统一的,此时需要泛型来进行限制。

泛型的优点:数据安全、获取数据时效率比较高。
在这里插入图片描述

给集合中的元素设置相同的类型就是泛型的基本需求。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为:
泛型类、泛型接口、泛型方法。

泛型的高阶使用:

1、泛型类

在定义类的时候在类名的后面添加起到占位的作用,类中的方法的返回值类型和属性的类型都可以使用。

代码展示:

  1. public class FanxingClass<A> {
  2. private int id;
  3. private A a;
  4. public int getId() {
  5. return id;
  6. }
  7. public void setId(int id) {
  8. this.id = id;
  9. }
  10. public A getA() {
  11. return a;
  12. }
  13. public void setA(A a) {
  14. this.a = a;
  15. }
  16. public void show(){
  17. System.out.println(" id : "+id+" ,A : "+a);
  18. }
  19. }

在这里插入图片描述

输出结果:
在这里插入图片描述

2、泛型接口

在定义接口的时候,在接口的名称后添加
(1)子类在进行实现的时候,可不填写泛型的类型,此时在创建具体的子类对象的时候才决定使用什么类型。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
此时实现类时传递的是什么类型,泛型里面放的就是什么类型。

(2)子类在实现泛型接口时,只在实现父类的接口的时候指定父类的泛型类型即可,此时,测试方法中的泛型必须要和子类保持一致。

在这里插入图片描述
在这里插入图片描述
输出结果:
在这里插入图片描述

3、泛型方法

在定义方法的时候,指定方法的返回值和参数是自定义的占位符,可以是类名的T。也可以是自定义的Q,只不过在使用Q时需要使用定义在返回值前面。

  1. public class FanxingMethod<T> {
  2. private T t;
  3. public T getT() {
  4. return t;
  5. }
  6. public void setT(T t) {
  7. this.t = t;
  8. }
  9. public <Q> void show(Q q){
  10. System.out.println(q);
  11. System.out.println(t);
  12. }
  13. }

在这里插入图片描述

输出结果:

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,143人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JAVA

    一、泛型的主要优点是能在编译时检测出类型错误而不是在运行时检测出错误。 二、泛型类型必须是引用类型,即基本类型不能作为泛型类型。 三、定义泛型类、接口和方法     1.

    相关 方法

      以前一直以为如果方法要传泛型必须继承类的泛型,后来发现不用,只需要在返回值前面加个<E>即可。   代码如下: / 组装一个arrayLis