一个程序会出现的错误有两种错误:一个是编译器错误,一个是运行期错误。
类型参数判断:
当使用泛型类的时候,必须在创建对象的时候指定参数类型的值,而使用泛型方法的时候,通常不用指明参数类型,因为编译器会为我们找出具体的类型。
public Map<String,<? extends Person>> map = new HashMap<String,<? extends Person>>();
//每次都这样创建对象比较麻烦,虽然现在版本的编译器好像都可以这样使用了 Map<String,<? extends Person>> map = new HashMap<>();
public Map<k,v> map(){
return new HashMap<k,v>();
}
Map<String,<? extends Person>> map1 = map();//这样就是类型参数的判断。
泛型由于类型擦除的存在,所以对泛型的检查都是编译器检查。保证在容器内的类型一致。
具体的内容参考博客:
https://www.cnblogs.com/yghjava/p/6298284.html