(六)泛型

来源:互联网 发布:编程是干什么的 编辑:程序博客网 时间:2024/06/03 19:59

一、引言

泛型定义的是一种类的约束关系,它表示的类要么自己写出,要么编译器可以推算得出。

二、泛型的使用

  • 集合中使用泛型
//定义Map的键值对数据类型Map<Person,Integer> map = new TreeMap<>();//定义Entry的数据类型Set<Map.Entry<Person, Integer>> set2=map.entrySet();
  • 自定义泛型类,泛型接口:

    1.定义类,接口时可使用泛型< >,如

    class A<T>{}class B extends A<String>{}

    2.如实例化是没指定泛型类型,则默认Object
    3.继承泛型类和泛型接口时,可指定泛型类型,也可不指定

  • 泛型方法:
    调用方法时,通过输入参数决定方法返回值类型

    public <E> E get(E e){}public <T> List<T> fromArrayToList(T[ ] t,List<T> list)
  • 泛型与继承的关系
    集合间为并列关系,其共同父类为使用通配符“?”的集合类
  • 通配符

    List<?>
    <? extends A>: A及其子类
    <? super A> : A及其父类

注意几点:
1.不可在静态方法中使用泛型,因为泛型随着对象的创建确定
2.不可在catch(E e)中使用泛型
3.可以读取声明为通配符的集合类的对象(以Object方式读),但不能写入(唯一例外:null)

0 0
原创粉丝点击