美文网首页
泛型(二)之泛型基础

泛型(二)之泛型基础

作者: 极客天空 | 来源:发表于2020-05-04 19:03 被阅读0次

从上一篇泛型(一)之为何引入泛型
可以知道了没有泛型的世界是多么的悲催,引入泛型带来的便利,下面就详细正式的介绍一下泛型

一 什么是泛型

Java泛型(generics)是JDK5中引入的一种参数化类型特性

二 为什么使用泛型,使用泛型的好处

  1. 代码更健壮(只要编译期没有警告,那么运行期就不会出现ClassCastException)
  2. 代码更简洁(不用强转)
  3. 代码更灵活,复用性更强
    举个栗子 List 中的sort
 default void sort(Comparator<? super E> var1) {
        Object[] var2 = this.toArray();
        Arrays.sort(var2, var1);//只要实现了Comparator这个接口 都可以使用这个 sort方法
        ListIterator var3 = this.listIterator();
        Object[] var4 = var2;
        int var5 = var2.length;

        for(int var6 = 0; var6 < var5; ++var6) {
            Object var7 = var4[var6];
            var3.next();
            var3.set(var7);
        }

    }

三 泛型的分类

  1. 泛型接口
public interface Plate<T> {
    public void set(T t);
    public T get();
}
  1. 泛型类
public class AIPlate<T> implements Plate<T> {
    List<T> items = new ArrayList<T>();

    public AIPlate() {
    }

    public AIPlate(T t) {
        items.add(t);
    }


    @Override
    public void set(T t) {
        items.add(t);
    }

    @Override
    public T get() {
        int index = items.size() -1;
        if(index>= 0){
            return items.get(index);
        }else{
            return null;
        }
    }

    @Override
    public String toString() {
        return "AIPlate{" +
                "items=" + items +
                '}';
    }
}
  1. 泛型方法
   public <T> AIPlate<T> getAIPlate(){
        return new AIPlate<T>();
    }

四 参数化类型

就是将类型当参数一样传递
参数类型只是引用类型(泛型副作用)
例如:
Plate<T>中的”T”称为类型参数
Plate<Banana>中的”Banana”称为实际类型参数
“Plate<T>” 整个成为泛型类型
“Plate<Banana>”整个称为参数化的类型

相关文章

  • 泛型(二)之泛型基础

    从上一篇泛型(一)之为何引入泛型可以知道了没有泛型的世界是多么的悲催,引入泛型带来的便利,下面就详细正式的介绍一下...

  • typescript入门-泛型

    基础定义 泛型接口 泛型类 泛型约束 使用类类型

  • 泛型基础二

    如果不明白为什么要使用泛型,使用泛型的好处,以及泛型类,泛型接口,泛型方法等知识,请移步泛型基础一 通配符 上界通...

  • 详解Java泛型之3——十分钟理解泛型擦除

    前面我们介绍了泛型以及通配符的基础概念,可以参考文章: 详解Java泛型之1——入门泛型必懂的知识点[https:...

  • Java泛型(黑马程序员武汉中心)

    Java泛型 一、概述 1、泛型含义 2、泛型好处 3、泛型分类 二、常见的泛型案例 1、泛型方法 A.定义时 B...

  • Java 泛型

    导读 移动开发知识体系总章(Java基础、Android、Flutter) 为什么会有泛型? 泛型类 泛型方法 泛...

  • Java 泛型

    一、泛型使用 1、泛型类 2、泛型函数 二、泛型限定符 1、泛型上限 泛型上限使用 extends 限制 多个限制...

  • JAVA范型<? extends __> <

    目录 一. 泛型概念的提出(为什么需要泛型)? 二.什么是泛型? 三.自定义泛型接口、泛型类和泛型方法 四.类型通...

  • spring 泛型处理

    java 泛型基础 泛型类型:泛型类型是在类型上参数化的泛型类或接口 泛型使用场景编译时前类型检查。定义为 Col...

  • Java基础之泛型

    Java基础之泛型 泛型基本介绍 简单介绍在jdk1.6之前,还没有使用到泛型,Java类型分为原始类型、复杂类型...

网友评论

      本文标题:泛型(二)之泛型基础

      本文链接:https://www.haomeiwen.com/subject/lvmyghtx.html