关于Java 泛型的总结

关于Java 泛型的总结

/**
* 泛型:
* 1、class MyStack<T> 此时的<T>代表是一个占位符 表示当前类是一个泛型类
* 2、 this.elem = new T[10]; 不能实例化泛型类型的数组对象
* 3、 MyStack<Integer> myStack = new MyStack<>();
*    MyStack<Integer> 这里指定当前类可以存放是数据类型
*    new MyStack<Integer>();
* 4、泛型的意义:
*     a:可以自动进行类型的检查
*     b:可以自动进行类型的转换
* 5、 MyStack<int> myStack = new MyStack<>();
*    简单类型 不能做泛型类型的参数  包装类型-》引用类型
* 6、泛型到底是怎么编译的?  擦除机制。
*    擦除为Object的意义 就是可以放任意类型的数据。
*    运行java程序的时候 是没有泛型的概念的
* 7、MyStack<Integer> stack : 泛型类型的参数  不参与类型的组成
*
* 8、泛型的上界:
*   class Algorithm<T extends Comparable<T> > {}
*   T:T类型 一定要实现Comparable 接口
*
*   class Algorithm<E extends Animal> {}
*   E:可以是Animal的子类 或者 是Animal自己类本身
*
* 9、泛型没有下界。
*
* 10、泛型方法
*    public static<T> T findMaxVal(T[] array) {
*
*   public static<T extends Comparable<T>> T findMaxVal(T[] array) {
*
* 11、
* * 通配符:通配符实际上也是一种泛型。一般用在源码当中居多一点。
*  * 泛型一般用于读取和写入
*  * 通配符一般用于读取
*  *
*  * 上界: ? extends E 示 传入的参数?  是下界E 的子类或者E自己本身
*  * 下界:<? super E> 表示 传入的参数?  是下界E 的父类或者E自己本身
*
* 12、
*         ArrayList<Integer> list   ArrayList<Number> list2
*         他们直接是否构成父子类关系???
*        不是这样子
*/

上一篇:获取android联系人信息


下一篇:c#学习笔记 数据结构 列表 栈 队列 哈希表