• 13 | 集合中泛型


    1 集合中泛型

    • 为什么要用泛型,为了统一集合当中的数据类型,为了更加方便的数据操作数据 ;
    • 泛型是一个参数化的类型 ;
    • 是用于规定要操作的数据类型。

    2 泛型类

    • 泛型标识,标识可以随便写,通常是一个大写字母,需要具备一定的可读性;
    • 比如T(Type),I(Item),K(key),V(value) ;
    • 如果在泛型类当中没有指定泛型,那么该类型,默认为Object ;
    • Public void test(T t){}:这种不是泛型方法;
    • 通常来说,我们不会对已泛型方式传入的数据做什么操作,因为使用泛型的前提是,我不知道用户会提供什么类型给我,所以,不会去操作;
    • :泛型形参;
    • :泛型实参。

    3 泛型接口

    • 泛型接口是定义在接口上 ;
    • 泛型类和泛型接口的泛型,在实现或者继承的情况下,重写或者实现的方法,泛型的参数和返回值需要保持一致;
    • 泛型接口的泛型实参必须指定,而实现类,可以不必指定,如果不指定,则沿用其接口的泛型类型。

    4 泛型通配符

    • :?代表任意泛型 ;
    • ?:是泛型实参,不是泛型形参;
    • 可以指定边界,规定某一批类型可以作为泛型,既可以规定泛型形参,也可以规定泛型实参。

    5 泛型方法

    • 如果在一个类当中,不必多个方法公用同一个类型,某个方法的泛型是独立在当前方法当中的,这时,建议使用泛型方法,不影响到其他方法的类型;
    • 在方法的修饰符和返回值之间,申明泛型,该泛型,只作用于当前方法。

    6 枚举

    • 注意:不建议使用枚举!只是因为这个东西,所以讲一下,了解足以;
    • 一些散列值:如果存在数据的安全风险,那么在使用的过程中,该数据可以定义为枚举来避免风险数据对安全型的影响。

    7 枚举构造

    • 枚举是针对所有的枚举的元素,每一个枚举的元素都相当于一个类;
    • 构造必须私有,调用构造的方法是通过调用类型;
    • 枚举中的类型是单例,有几个类型创建几个单例(问题之一);
    • 枚举可以重写方法 ;
    • 枚举可以实现接口。

    8 枚举问题

    • 有可能会大量产生单例,但是这个问题并不是枚举最致命的问题;
    • 在网络当中,web开发,枚举和很多主流的数据结构不兼容。

    9 java的异常

    • 如果程序发生异常,会影响到后续程序的执行;
    • 使用异常处理机制,保证程序能够正常下去,不崩溃。

    10 捕获异常

    • 捕获异常后,在异常类型匹配的情况下,可以保证在异常捕获之外的程序能够继续执行下去 ;
    • 异常堆栈信息:最上面是异常发生的最开始位置;
    • 异常的本质只是一个标识类,效果等同用户返回值,是返回值的一种;
    • 可以有多个catch,由上而下依次匹配,取第一匹配上的,父类只能在子类异常的后面;
    • try当中有多个异常的时候,那个先碰到,先处理那个;
    • 不要把一个代码块当中所有的代码都放到一个try-catch当中,这样做等同于什么也没做。

    11 自动抛出异常

    • 当前方法不想处理异常,那么可以抛出异常,交给调用者处理(捕获/抛出),谁调用谁处理;
    • 异常最终抛无可抛,则必须要被处理;在中途被处理狗的异常,其调用者就不必再处理了。

    12 手动抛出异常

    • 根据使用者的实际情况,来判断是否需要手动抛出 ;
    • 运行时异常不是必须被处理的异常 ;
    • checked异常是必须被处理的异常。

    13 自定义异常

    • 创建一个类,符合异常命名规范;
    • 继承exception,或者runtime exception ;
    • 实现所有父类构造调用。
  • 相关阅读:
    命令行界面 (CLI) 应用程序
    力扣169. 多数元素
    pycharm上执行pyuic,文件指定不对,那就用命令执行吧
    VSCode远程连接Linux
    MySQL---JDBC编程
    Linux —— 线程
    指针详解第三部分
    MySQL - 对字符串字段创建索引
    MySQL 特殊字符
    java面试题-学成在线项目
  • 原文地址:https://blog.csdn.net/u013916029/article/details/126258110