泛型的意义:类型的参数化,就是可以把类型像方法的参数那样传递。
1、泛型只存在于编译期间
2、泛型在语法中的特征就是尖括号
3、泛型的核心原理:利用Object引用可以指向任意类型的对象
问题:Java中有些类型不是对象类类型咋办?
Java专门为8种基本类型定义了各自对应的类类型
int -> Integer char -> Character
其他的都是首字母大写即可
注:泛型的尖括号不可能出现基本类型
4、使用泛型
A
B
C
5、以下代码加深理解:
//元素类型明确为long类型
public class MyArrayList1 {
private long[] array;
private int size;
public MyArrayList1(){
array = new long[10];
size = 0;
}
public void add(long e){
array[size] = e;
size++;
}
}
public class MyArrayList2{ //在本类中可以把E当作一种类型来使用 private E[] array; private int size; public MyArrayList2(){ //泛型不允许定义数组 array = (E[]) new Object[10]; size = 0; } public void add(E e){ array[size] = e; size++; } }
import java.util.Random;
public class UseMyArrayList {
public static void main(String[] args) {
MyArrayList1 list1 = new MyArrayList1();
list1.add(1);
list1.add(2);
//对于泛型来说,类型是在使用该类时才明确定义出来的
// 用String赋值给定义 MyArrayList2 时的E
MyArrayList2 list2 = new MyArrayList2();
list2.add("1");
MyArrayList2 list3 = new MyArrayList2();
list3.add(1L);
MyArrayList2 list4 = new MyArrayList2<>();
list4.add(new Random());
}
}



