• 泛型的总结


    泛型的总结

    • 泛型不支持使用基本数据类型,基本数据类型要使用时需要使用包装类。
    • 泛型不支持使用数组
    • 当使用基本数据类型包装类且获取数据时,如果该属性没有赋值保持默认值的话,那它的值为null,这时要注意自动拆箱会导致空指向异常。
    • 同一个类上可以定义多个泛型标记。
    • 当一个泛型类做为某个方法的参数时,就需要用到通配符 ? 。此时,不能设置数据,只能取出数据。
    • 当使用 ? 通配符取出数据时,数据类型是Object,要给变量赋值时,必须向下转型。
    • T extends 类? extends 类 设置泛型的上限,可以在类声明或方法上使用。
    • ? super 类 设置泛型下限,只能在方法上使用。
    • 泛型接口分两种:一是在子类继续设置泛型标记。二是子类不设置泛型标记,而为父类接口明确地定义一个泛型类型。
    • 泛型方法 public static <T> T fun(T t) T的类型由传入的参数决定。

    方法参数中使用通配符 ? 和 不声明泛型类型 和 声明泛型具体类型 区别:

    • 1、public void fun(Generic<?> temp)
    使用通配符 ? 获取到的数据类型是 Object,要赋值变量就必须向下转型,同时,因为 ? 不能确定类型,所以不能设置数据。
    
    • 2、public void fun(Generic temp)
    不声明泛型相当于默认是Objecte,此时,可以设置或取出数据,同样,获取到的数据类型是 Object,要赋值变量就必须向下转型。
    
    • 3、public void fun(Generic temp)
    声明泛型具体类型时,可以设置或取出数据,获取到的数据类型是其声明时的类型,要赋值变量不需要向下转型 。
    
  • 相关阅读:
    杭电 2546 饭卡 (01背包问题)
    杭电2602 Bone Collector
    01背包问题的详细概述
    杭电1003 最大子串(第二次AC) 当作DP的训练吧
    杭电1087 Super Jumping! Jumping! Jumping!(初见DP)
    Virtualenv虚拟环境的创建、激活、及退出
    修改maven本地仓库路径
    PPT如何去除背景音乐(史上最全方案)
    NVIDIA显卡驱动安装步骤
    Python之NumPy(axis=0 与axis=1)区分
  • 原文地址:https://www.cnblogs.com/haixianet/p/8606862.html
Copyright © 2020-2023  润新知