-
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