3.类型变量的限定

为什么要限定类型变量?

例:

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》读书笔记及个人理解解释

猜你喜欢

转载自blog.csdn.net/yztfst/article/details/82564076