Java疯狂讲义读书笔记第九章

版权声明:随意转载 https://blog.csdn.net/bigcupwater/article/details/76172495
  1. 把一个对象存储到集合里之后,集合会忘记这个对象的数据类型,当再次取出该对象时,该对象的编译类型就变成了Object类型。
  2. 泛型的使用:在集合接口、类后面增加尖括号,尖括号里存放放一个数据类型,表明这个集合接口、集合类只能保存特定类型的对象。
  3. 从Java7开始,允许在构造器后不需要带完整的泛型信息,值需要给出一对尖括号即可。
  4. 在定义接口、类时声明类型形参,类型形参在整个接口、类内部可以当成类型来使用,几乎所有可以使用普通类型的地方都可以使用这种类型参数。

    
    public class Apple<T> {
    private T info;
    public Apple() {
    
    }
    public Apple(T info) {
        this.setInfo(info);
    }
    public T getInfo() {
        return info;
    }
    public void setInfo(T info) {
        this.info = info;
    }
    
    public static void main(String[] args) {
        Apple<String> a1 = new Apple<>("苹果");
        System.out.println(a1.info);
    
        Apple<Double> a2 = new Apple<>(23.2);
        System.out.println(a2.info);
    }
    
    
  5. 创建了带泛型声明接口、父类之后,为接口创建实现类,从父类派生子类时,不能再包含类型形参,应该传入实际的类型。

  6. 在静态方法、静态初始化块、或者静态变量声明和初始化中不允许使用类型形参。
  7. 类型通配符,为了表示各种泛型的父类,可以使用类型通配符(?),将一个问号作为类型实参传给List集合,它的元素类型可以匹配任何类型。
  8. 设置类型通配符的上限,java List<? extends Shape>,此处的问号代表一个未知类型,但是这个未知类型一定是Shape类型的子类型或本身。
  9. 泛型方法,java修饰符 <T, S> 返回值类型 方法名(形参列表){方法体}
  10. 设置类型通配符的下限,javaList<? Super Shape>,此处的问号代表一个未知类型,但是这个未知类型一定是Shape类型的父类型或本身。

猜你喜欢

转载自blog.csdn.net/bigcupwater/article/details/76172495