Java泛型中的默认类型及基本类型的自动装箱和拆箱机制
· 阅读需 1 分钟
泛型机制
- 如果没有进行具体类型的传入,默认使用 Object 进行装箱。
- 取值的时候自动拆箱为基本类型。
举例
package com.Generics;
public class Box<T> {
private T value;
public Box () {
}
public Box (T value) {
this.value = value;
}
public T getValue () {
return value;
}
public void setValue (T value) {
this.value = value;
}
}
使用
package com.Generics;
public class BoxTest {
public static void main (String[] args) {
Box genericBox = new Box(); // 不指定泛型类型,默认为Object
genericBox.setValue("Hello"); // 可以存储任何类型的对象
genericBox.setValue(123); // 也可以存储一个int
Object genericValue = genericBox.getValue(); // 返回值类型为Object
System.out.println(genericValue);
Box<Integer> intBox = new Box<>();
intBox.setValue(42); // 自动装箱:将int转换为Integer
int intValue = intBox.getValue(); // 自动拆箱:将Integer转换为int
System.out.println(intValue);
}
}
从Object genericValue = genericBox.getValue()
这段代码没有报错就可以判断出默认类型为Object