国庆节10月1日
--


嘿,你有没有遇到过往 ArrayList 里塞了一堆 Dog,取出来却要硬转成 Cat 的尴尬?😅 泛型就是来救场的——它不是什么高冷黑科技,而是让编译器提前帮你盯紧类型、少写强转、少踩 ClassCastException 坑的贴心搭档。今天咱们就轻松聊聊:它怎么悄悄把代码变得更安全、更干净、还更省心。
在集合中,使用传统方法(不使用泛型)存在两个主要问题:
使用泛型可以解决上述问题:
类型安全:在编译时检查添加元素的类型,不符合则报错,提高了安全性。
提高效率:减少了遍历时不必要的类型转换次数。
消除警告:代码更加简洁、健壮,不再有编译警告。
1// 声明一个泛型类2class Person<E> { ... }3// 实例化,指定 E 为 String 类型4Person<String> person = new Person<String>("韩顺平教育");1List<Integer> list1 = new ArrayList<Integer>(); // OK2// List<int> list2 = new ArrayList<int>(); // 错误1// 完整写法2ArrayList<Integer> list1 = new ArrayList<Integer>();3// 简化写法(类型推断),推荐使用4ArrayList<Integer> list2 = new ArrayList<>();5// 未指定泛型,默认为 Object6ArrayList list3 = new ArrayList(); // 等价于 ArrayList<Object> list3 = ...
注意细节:
基本语法:interface 接口名<T, R…> { … }
注意细节:
基本语法:修饰符 <T, R…> 返回类型 方法名(参数列表) { … }
注意细节:
为了表示泛型之间的某种关系,引入了通配符 ?。
<?>:无界通配符
<? extends A>:上界通配符
<? super A>:下界通配符
如果你喜欢,那么欢迎来到我的世界!
了解更多暂未播放



"所有的相遇都是久别重逢。"—— 未知


