编译时错误:在编译期可以发现,这种错误要经过程序员修改才能编译成功。
运行时错误:编译时为报错,运行时报错。遇到这种错误必须修改相应的代码。
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<?> 表示可以放任何元素。