发表于: 2018-03-14 22:56:40
1 475
今天完成的任务
1、复习java泛型
A、在定义类的时候使用一个标记<T>,用来表示类的属性或方法参数的类型,就可以在声明这个类的时候才动态的指定类属性或方法参数的类型。
类声明格式:public class Point<T>
实例化格式:Point<String> point = new Point<String>();
B、避免了向下转型可能造成的类型转换的安全隐患(ClassCastException)。
C、只能在类上使用泛型,也就是只有引用类型才能用标记<T>表示,基本数据类型不能用标记<T>表示。
注意:
- 如果在实例化泛型的时候没有指明T的具体类型,那么会使用Object类型替换T,这样还是会发生向下转型,这是不安全的。
- JDK1.7后,实例化泛型可以省略后面的T标记的类型:Point<String> point = new Point<>();
D、通配符 ?- 只能用在方法参数的声明上,且使用后,方法内只能getter,不支持setter
E、通配符 ?extends 类 - 设置泛型的上限
F、通配符 ? supper 类 - 设置泛型的下限
2、复习反射
- A、要理解反射,关键在于“反”这个字的理解。在理解“反”之前,要先理解什么是“正”。“正”是指要实例化一个对象,要先知道它是哪个类的,再通过new关键字进行对象的实例化。那么,“反”就是指先有实例化对象,再通过这个实例化对象得到对应的类,这个过程就是反射。
- B、java.lang.class是一切反射的源头。也就是说,要想利用反射,首页要得到class对象。方法有三种:
- 对象.getClass();
- 类名.class;
- Class.forName("类的完全限定名")
- C、单独使用工厂模式,每增加一个子类就要修改工厂的代码,从这一点可以看出工厂模式是紧耦合的。为什么是紧耦合的?这是因为工厂模式是使用new进行对象的实例化,所以说new是一切耦合的源头。
- D、在工厂模式下,可以利用反射实例化对象,(没有使用new关键字)实现解耦
遇到的问题
收获
明天的计划
1、下午接手修真院22期,明天要把第一次方案评审存在的问题解决了
2、还有2个bug没改,一个是官网购买服务器后点击续费,没有返回结束时间;一个是后台分院排序的接口,返回HTTP 415错误。
进度
评论