- 博客(5)
- 资源 (13)
- 收藏
- 关注
原创 3、泛型-泛型代码和虚拟机
泛型代码和虚拟机虚拟机没有泛型类型,只有普通的类和方法。无论何时定义一个泛型类型,都自动提供一个相应的原始类型。原始类型的名字就是删除类型参数后的泛型类型名。擦除类型变量,并替换为限定类型,无限定类型的变量用Object。Pair<T>的原始类型,因为T是一个无限定的变量,所有直接用Object替换。public class Pair { private Object fir...
2018-05-24 17:34:11 244
原创 2、泛型-泛型的约束与局限性
不能用基本类型实例化类型参数没有Pair<double>,只有Pair<Double>。原因是类型擦除,擦除之后,Pair类含有Object类型的域,而Object不能存储double值。这样做与java语言中基本类型的独立状态相一致。运行时类型查询只适用于原始类型 Pair<LocalDate> pair=new DateInterval(); ...
2018-05-24 17:33:39 744
原创 1、泛型-介绍
为什么需要泛型使用泛型,使得程序具有更好的可读性和安全性。没有泛型之前,集合使用的是Object,导致一个集合里可能出现不同类型的数据,比如String,File等,导致其他人都不知道这个集合中有哪些类型数据。add()方法的时候,编译和运行都不会出错,但是在get()获取结果的时候,需要强制类型转换成需要的类型,这时可能会出现类型转换异常。使用泛型后,ArrayList<String>...
2018-05-24 17:32:38 166
原创 4、泛型-通配符
无边界通配符:<?>无边界通配符的主要作用就是让泛型能够接受未知类型的数据。 public static void main(String[] args) { List<String> list1=new ArrayList<>(); list1.add("aa"); list1.add("bb"); ...
2018-05-24 17:30:58 183
原创 设计模式-状态模式
不用状态模式的案例public class WriteProgram { int hour = 0; boolean workFinished = false; public void writeProgram() { if (hour < 12) { System.out.println("当前时间:" + hour...
2018-05-21 15:33:24 120
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人