时间过得很快,我们马上就进入了,Java最难语法的学习,加油吧!
1.包装类
想要学好泛型就要了解包装类。
在Java中,由于基本类型不是继承自Object,为了在泛型代码中可以支持基本类型,Java给每个基本类型都对应了一个包装类。
除了 Integer 和 Character, 其余基本类型的包装类都是首字母大写。
1.2 装箱和拆箱
public static void main(String[] args) {
int a = 10;
Integer aa = a; //装箱
Integer b = 20;
int bb = b; //拆箱
}
这是一种自动 装箱/拆箱 。
装包:把一个基本类型转变为包装类型。
拆包:把一个包装类型转变为基本类型。
也有手动 装箱/拆箱。
int a = 10;
Integer aa = Integer.valueOf(a); //装箱
Integer b = new Integer(20);
int bb = b.intValue(); //拆箱
两者基本一样,在底层都是调用的同一个方法。
2.泛型
2.1什么是泛型
泛型是在JDK1.5引入的新的语法,通俗讲,泛型:就是适用于许多类型。从代码上讲,就是对类型实现了参数化。
2.2语法
class 泛型类名称<类型形参列表> {
// 这里可以使用类型参数
}
代码示例
class MyArray<T> {
public T[]array = (T[]) new Object[10];
public void setval(int pos,T val){
array[pos] = val;
}
public T getval(int pos){
return array[pos];
}
}
public class Main {
public static void main(String[] args) {
MyArray<String> myArray = new MyArray<String>();
myArray.setval(1,"hello");
myArray.setval(2,"bit");
String str = myArray.getval(1);
System.out.println(str);
MyArray<Integer> myArray1 = new MyArray<>();
myArray1.setval(0,1);
int val = myArray1.getval(0);
System.out.println(val);
}
}
泛型的意义
- 1.在编译的时候检查数据类型是否正确
- 2.在编译的时候帮助进行类型转换
2.3泛型类的使用
泛型类<类型实参> 变量名; // 定义一个泛型类引用
new 泛型类<类型实参>(构造方法实参); // 实例化一个泛型类对象
示例
MyArray<Integer> list = new MyArray<Integer>();
注意:泛型只能接受类,所有的基本数据类型必须使用包装类!