泛型:<>里面必须是 类类型,不能是基本数据类型
class MyArrayList<E>{}
<E>代表当前类是一个泛型类,此时的E就只是一个占位符
Collection接口:
import java.util.ArrayList;
import java.util.Collection;
public class textdemo2 {
public static void main(String[] args) {
Collection collection=new ArrayList();//接口引用实现类
//泛型:<>里面放指定的类型,后面的<>里面的String可以省略,因为要跟第一个<>里面保持一致,所有可以推导出来
Collection<String> a=new ArrayList<>();
}
}
整体的类型强转为String,但是数组里面的元素没有变化
泛型中尖括号中的内容,不参与类型的组成
泛型是怎么编译的?
1.泛型是编译时期的一种机制,叫做擦除机制,擦成object
数组再运行时检查和存储类型信息,泛型在编译时检查类型错误,在运行时没有类型信息
2.泛型代码在运行期间,通过object来达到效果
泛型的意义:①自动对类型进行检查;②自动对类型进行强制类型转换