Java 数据结构 包装类和泛型

发布时间:2026/7/17 20:20:37
Java 数据结构 包装类和泛型 包装类在Java中由于基本类型不是继承⾃Object为了在泛型代码中可以⽀持基本类型Java给每个基本 类型都对应了⼀个包装类型。基本数据类型和对应的包装类装箱和拆箱// 装箱操作新建⼀个 Integer 类型对象将 i 的值放⼊对象的某个属性中 Integer ii Integer.valueOf(i) // ⾃动装箱 Integer ii i;// 拆箱操作将 Integer 对象中的值取出放到⼀个基本数据类型中 int j ii.intValue(); //自动拆箱 int j ii;泛型泛型就是适⽤于许多许多类型。从代码上讲就是对类 型实现了参数化。class MyArrayT { public Object[] array new Object[10]; public T getPos(int pos) { return (T)this.array[pos]; } public void setVal(int pos,T val) { this.array[pos] val; } } public class TestDemo { public static void main(String[] args) { MyArrayInteger myArray new MyArray();//泛型类的使用 myArray.setVal(0,10); myArray.setVal(1,12); int ret myArray.getPos(1);//2 System.out.println(ret); } }泛型的上界在定义泛型类时有时需要对传⼊的类型变量做⼀定的约束可以通过类型边界来约束。语法class 泛型类名称类型形参 extends 类型边界 { ... }使用public class MyArrayE extends Number {//E的类型只能使用包含number及其子类 ... }public class MyArrayE extends ComparableE {//E须实现comparable方法 ... }泛型⽅法⽅法限定符类型形参列表 返回值类型 ⽅法名称(形参列表) { ... }public static E void swap(E[] array, int i, int j) { }通配符// 此时使⽤通配符?描述的是它可以接收任意类型 public static void fun(Message? temp){ System.out.println(temp.getMessage()); }通配符上界? extends 上界 ? extends Number//可以传⼊的实参类型是Number 或者Number的⼦类通配符下界? super 下界 ? super Integer//代表可以传⼊的实参的类型是Integer 或者Integer的⽗类类型