【Java笔记】java泛型

Java泛型

泛型:是一种未知的数据类型,当我们不知道使用什么类型的数据的时候,可以使用泛型

泛型也可以看成是一个变量,用来接受数据类型

ArrayList在定义的时候,不知道集合中都会存储什么类型的数据,所以使用泛型

E: 未知的数据类型

创建集合对象的时候,就会确定泛型的数据类型

使用泛型的优缺点

创建集合对象,不使用泛型

好处:集合不使用泛型,默认的类型就是Object类型,可以存储任意类型的数据

弊端:不安全,会引发异常

创建集合对象,使用泛型

好处:

  1. 避免了类型转换的麻烦,存储的使什么类型,取出的就是什么类型
  2. 把运行期异常,提升到了编译期

弊端:

​ 泛型使什么类型,只能存储什么类型的数据

泛型的定义与使用

含有泛型的类

创建对象的时候确定泛型的数据类型

public class GenericClass<E> {
    private E name;

    public E getName() {
        return name;
    }

    public void setName(E name) {
        this.name = name;
    }
}
public static void main(String[] args) {
        GenericClass<Integer> gc = new GenericClass<>();
        gc.setName(2334);
    }
}

含有泛型的方法

在调用方法的时候确定泛型的数据类型

public <M> void nethod(M m){
    //方法体
}

泛型通配符

当使用泛型类或者接口时,传递的数据中,泛型类型不确定,可以通过通配符<?>表示。但是一旦使用泛型的通配符后,只能使用Object类中的共性方法,集合中元素自身的方法无法使用。

public static void printArray(ArrayList<?> list){
    //使用迭代器遍历集合
    Iterator<?> it = list.iterator();
    while(it.hasNext()){
        Object o = it.next;
        System.out.println(o);
    }
}
posted @ 2021-07-21 10:44  半袋咖啡  阅读(35)  评论(0编辑  收藏  举报