这个:代表当前类是一个泛型类
new T[10]:这是不被允许的,不能new泛型类型的数组,T[] t = new T[];是不允许的 泛型的意义:- 在存储元素的时候,可以自动类型检查
- 在获取元素的时候,可以自动类型转换
- 泛型只在编译的时候起作用,在运行的时候是没有泛型的概念的,泛型是为了解决某些容器,算法等代码的通用性而引入,并且能在编译期间做类型检查。
- 泛型在编译的时候使用的是擦除机制,也就是像Integer,String在编译的时候是存在的,但是在编译的时候被擦除了,所有的T在运行的时候被换成了Object。
class Person{
}
class MyArrayList{//这里实现了一个非常简单的顺序表
private T[] elem;
private int usedSize;
public MyArrayList(){
this.elem = (T[]) new Object[10];
}
public void add(T val){
this.elem[this.usedSize++] = val;
}
public T getPos(int pos){
return this.elem[pos];
}
}
public class TestDemo {
public static void main(String[] args) {
Person person = new Person();
System.out.println(person);
MyArrayList arrayList = new MyArrayList<>();
System.out.println(arrayList);
MyArrayList arrayList1 = new MyArrayList<>();
System.out.println(arrayList1);
}
public static void main1(String[] args) {
MyArrayList arrayList = new MyArrayList<>();
arrayList.add(1);
arrayList.add(2);
//arrayList.add("王");可以自动进行输入类型检查
int ret = arrayList.getPos(0);//不需要强制类型转换
System.out.println(ret);
MyArrayList arrayList1 = new MyArrayList<>();
arrayList1.add("王");
arrayList1.add("根");
String pos = arrayList1.getPos(1);
System.out.println(pos);
}
}



