为什么要限定类型变量?
例:
class Compare {
public static<T> T min(T a,T b) {
if(a.compareTo(b)<0) return a;
if(a.compareTo(b)>0) return b;
else return null;
}
}
注:compareTo方法为按照字典顺序,如果第一个字符串比第二个字符串靠前,就返回负值,否则返回正值
在这种情况下,我要怎么确定T有compareTo方法呢
因此
public static <T extends Comparable> T min(T a,T b)...
这样子把T限定为实现了Comparable接口的类就可以了
一个类型变量或通配符可以有多个限定,如:
T extends Comparable & Serializable
限定为实现xx接口可以像上面那样限定多个接口,但是,如果是限定为类的话就只能有一个,而且它必须是限定列表中的第一个
注:本文为《Java 核心技术 卷I》读书笔记及个人理解解释