zoukankan      html  css  js  c++  java
  • 泛型结构使用大全(泛型类、泛型接口)

    1、泛型类可能有多个参数,此时应将多个参数一起放到尖括号内,比如:<E1,E2,E3>

    2、泛型类的构造器如下:

    public GenericClass(){}

    *错误示例:public GenericClass<E>(){}

    3、实例化后,操作原来泛型位置的结构必须与指定的泛型类型一致。

    4、泛型不同的引用不能互相赋值。

    尽管在编译时ArrayList<String>和ArrayList<Integer>是两种类型,但是,在运行时只有一个ArrayList被加载到JVM中。

    5、泛型如果不指定,将被擦除,泛型对应的类型均按照Object处理,但不等价于Object。

    经验:泛型要使用就一路都用。如果不用,就一路都不要用。

    6、如果泛型结构是一个接口或者抽象类,则不可创建泛型类的对象。

    7、jdk1.7,泛型的简化操作:

    ArrayList<Fruit> flist = new ArrayList<>();

    8、泛型的指定中不能使用基本数据类型,可以使用包装类替换。

    9、在类/接口上声明的泛型,在本类或本接口中即代表某种类型,可以作为非静态属性的类型、非静态方法的参数类型、非静态方法的返回值类型。但在静态方法中不能使用类的泛型。

    10、异常类不能是泛型的。

    11、不能使用new E[]。但是可以 E[] elements = (E[])new Object[capacity];

    参考:ArrayList源码中声明:Object[] elementData,而非泛型参数类型数组。

    12、父类有泛型,之类可以选择保留泛型也可以选择指定泛型类型:

    • 子类不保留父类的泛型:按需实现

        ①没有类型 擦除

        ②具体类型

      之类保留父类的泛型:泛型子类

        ①全部保留

        ②部分保留

    结论:子类必须是“富二代”,子类除了指定或保留父类的泛型,还可以增加自己的泛型。

  • 相关阅读:
    hdu 2680:Choose the best route(Dijkstra , SPFA)
    Gym
    Gym
    Gym
    常用的相似度计算
    kafka 配置
    Kafka-broker配置说明
    kafka 安装以及测试
    adaboost算法
    solr scheme配置简介
  • 原文地址:https://www.cnblogs.com/smallVampire/p/13972832.html
Copyright © 2011-2022 走看看