码迷,mamicode.com
首页 > 编程语言 > 详细

java的泛型

时间:2021-05-24 13:12:20      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:object   基本类型   ble   其他   com   pre   多个   基本   override   

泛型

1 泛型存在的目的

类型参数化,模板化编程,简化编程

2 泛型的原理

java的泛型参数在运行时会进行类型擦除,擦除后就是object,编译器也会转成object进行编译

那么为啥使用泛型呢?

  1. 更加安全
  2. 更好的可读性

3 泛型的使用

最常用的容器类比如List

泛型类

class Pair2<U, T>{
    private U u;
    private T t;
    Pair2(U u, T t){
        this.u = u;
        this .t = t;
    }
}

泛型方法

public <T> A test(T t, T t2){
}

泛型接口

interface Comparable<T>{
    int commpareTo(T o);
}

class TestComparableImpl implements<Interger>{
    public int commpareTo(T o){
        return 0;   
    }
}

类型参数限定

  1. 上界为某个具体类
  2. 上界为某个接口
  3. 上限为其他类型

简洁的通配符

  1. 只读
  2. 只读
  3. 写入或者比较

通配符类型更加通用简洁,需要注意写类型

4 细节和局限性

泛型类,方法和接口

  1. 基本类型不能使用泛型
  2. 运行时类型不适合泛型
  3. 类型擦除可能引起冲突

类型查除,比如这种

@Data
class Base implements Io<Base>{
    private int id;
    @Override
    public void say(Base t){
        System.out.println("base:"+t.getId());
    }
}

class Child extends Base{
    @Override
    public void say(Base t){
        if(! (t instanceof Child)){
            return;
        }
        System.out.println("child:"+t.getId());
    }
}

不能通过new T()创建对象或者数组

泛型支持多个上界 T extends a & b & c

java的泛型

标签:object   基本类型   ble   其他   com   pre   多个   基本   override   

原文地址:https://www.cnblogs.com/beckbi/p/14774781.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!