编译时错误:在编译期可以发现,这种错误要经过程序员修改才能编译成功。
运行时错误:编译时为报错,运行时报错。遇到这种错误必须修改相应的代码。
JDK升级过程中致力于把运行时错误转换成编译时错误。
定义泛型类和泛型接口:
public class DemoA
extends限定参数类型:
<T extends 类名> <T extends 接口名> T为特定类或接口的本身或子类。
super限定参数类型:
TreeSet<T super 类型1> T类型的下线为类型1.
泛型数组:
public class ArrayBag<T> { // private T[] content=new T[];//这种方式定义泛型数组会报错 private T[] content; public ArrayBag(T[] content) { this.content = content; } }
使用 ? 通配符
HashSet<Object> s=new HashSet<Sting>(); //不合法,编译通不过 修改为: HashSet<? extends 类型2> s=new HashSet<类型1>(); Collection<?> 表示可以放任何元素。