泛型
概念:泛型的术语意思就是,适用于许多许多的类型,是JDK5引入的概念,实现了参数化类型的概念。
- 设计坐标类,可以操作int类型的坐标值。
- 升级坐标类,可以同时操作int类型,double类型和String类型的坐标。
菱形语法
概念:泛型声明格式也叫菱形语法,使用菱形语法可以不在坐标类中指定成员的具体类型,而是由外部调用者来决?<定和显示声明,这样的设计使得类的设计变得更加的灵活和简单。
白-泛型声明:
- class 类名<泛型,泛型,…>{}
- 构造器名后面不能使用泛型,但是构造器参数可以。-泛型不能使用基本数据类型。
- 泛型使用:
- 标准写法:类名<泛型>实例= new类名<泛型>4()
- 不建议写法:类名<泛型>实例= new类名()
- JDK8写法:类名<泛型>实例= new类名<>()
- 泛型擦除:类名实例= new类名():泛型擦除默认将泛型指定为‘object’。
泛型检查
概念:一旦使用了泛型设计,就必须要保证使用方传入的参数和设计方规定的参数类型保持完全一致,否则Javac会报错,这样的设计时候为了使类的运行过程更安全,使用更方便。
泛型仅仅是给javac看的,在运行时候,IVM会将所有泛型忽略掉,而我们的反射是在程序运行的过程中执行的,所以一般情况下,我们的反射无法看到泛型的存在,反过来想,通过反射的方式,我们可以越过泛型的检查。