java泛型

什么是泛型?

在我理解,泛型就是多种类型中的一种类型。随便你是什么类型,java有8大基本类型和object,泛型就是其中任意的一个类型。

为什么要用泛型?

我们先想想不用泛型行不行?例如:List假如没有泛型,那就可以调用add方法,加入任何类型。加的时候挺爽的,取的时候怎么办?只能取出object,如果强转的话,或许就会报错。如果你需要的是String类型,那要怎么办呢?
所以,泛型保证了我们存取数据类型的一致性。

泛型的原理?
看一下List的部分源码:

public interface List<E> extends Collection<E> {
    boolean add(E e);
    E get(int index);
}

用添加时的参数类型,和取出时候的返回值类型,保证了存取的一致性,如果add时类型传错了,编译器直接就会报错了。

怎么用泛型
例如泛型类,就放在类后,T、E、K、V等常用的字母都行

class Momo<T> {
    private T data;
    public Momo() {
    }
    public Momo(T data) {           //new对象时就要传入指定的类型了
        this.data = data;
    }
    public T getData() {
        return data;
    }
} 
Momo<String> name = new Momo<String>("great");  
Momo<Integer> num = new Momo<Integer>(1024);

通配符
拿上面了例子来说 Momo和Momo的父类是什么? 如果传递的参数是Momo类型,就可以用到通配符,即

public static void getData(Momo<?> momo) {
    System.out.println("data :" + momo.getData());
}

还有一种通配符下限和上线的说法,其实就是对传入的参数进行更进一步的约束
通配符上限

Momo<? extends Number>     //只能是Number的子类

通配符下限

Momo<? super Number>  //只能是Number的父类
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ying1414058425/article/details/52355508
文章标签: java 泛型
个人分类: java
上一篇Android URLEncoder
下一篇java多态
想对作者说点什么? 我来说一句

Java Generics and Collections

2018年05月09日 2.13MB 下载

关于java泛型的讲解

2011年06月15日 63KB 下载

java泛型机制

2011年11月06日 35KB 下载

JAVA泛型集合

2018年04月26日 3.76MB 下载

全面总结Java泛型

2009年12月17日 81KB 下载

java泛型学习ppt

2011年08月01日 829KB 下载

没有更多推荐了,返回首页

关闭
关闭