做弹幕视频效果的网站,网站开发开票内容写什么,电子商务网站建设与维护致谢词,安徽工程建设网包装类 在Java中#xff0c;由于基本类型不是继承自Object#xff0c;为了在泛型代码中可以支持基本类型#xff0c;Java给每个基本类型都对应了 一个包装类型。 基本数据类型和对应的包装类 装箱和拆箱 装箱操作#xff0c;新建一个 Integer 类型对象#xff0c;将 i 的…
包装类 在Java中由于基本类型不是继承自Object为了在泛型代码中可以支持基本类型Java给每个基本类型都对应了 一个包装类型。 基本数据类型和对应的包装类 装箱和拆箱 装箱操作新建一个 Integer 类型对象将 i 的值放入对象的某个属性中 拆箱操作将 Integer 对象中的值取出放到一个基本数据类型中 什么是泛型 泛型就是适用于许多许多类型。从代码上讲就是对类型实现了参数化。 所有类的父类默认为Object类。 泛型的主要目的就是指定当前的容器要持有什么类型的对象。让编译器去做检查。此时就需要把类型作为参数传递。需要什么类型就传入什么类型。 语法 class 泛型类名称类型形参列表 { // 这里可以使用类型参数 } class ClassNameT1, T2, …, Tn { }
一个泛型的简单示例 想要传递String类需要如下操作 注意事项 类名后的 代表占位符表示当前类是一个泛型类 不能new泛型类型的数组,因为不知道T是什么类型 泛型如何编译的 擦除机制 在编译的过程当中将所有的T替换为Object这种机制我们称为擦除机制。 Java的泛型机制是在编译级别实现的。编译器生成的字节码在运行期间并不包含泛型的类型信息。 为什么不能实例化泛型类型数组 上述返回的Object数组里面可能存放的是任何的数据类型可能是String可能是Person运行的时候直接转给Integer类型的数组编译器认为是不安全的。
泛型一种比较规范的写法 泛型的上界 在定义泛型类时有时需要对传入的类型变量做一定的约束可以通过类型边界来约束 可以做如下修改 上述就是泛型方法的实现 public class MyArray { … } 只接受 Number 的子类型作为 E 的类型实参 泛型静态方法的实现