Bound类型
除了基础类型(primitive)和数组(Array)外,都可以作为边界类型
<T extends Number >
<T extends String >
<T extends Runnable >
<T extends Thread.State >
<T extends List >
<T extends List<String> >
这两个不行
<T extends int >
<T extends Object[] >
可以使用类型形参作为边界
class Line <T> {
private T fst, snd;
public < X extends T , Y extends T> Line(X arg1, Y arg2) {
fst = arg1;
snd = arg2;
}
}
参考
http://www.angelikalanger.com/GenericsFAQ/FAQSections/TypeParameters.html#FAQ001