首页 > 解决方案 > 可比接口实现

问题描述

Comparable是一个包含方法的接口compareTo()

在使用泛型方法返回三个可比较对象中最大的一个的代码中,compareTo()直接使用方法而不实现。这怎么可能?是因为我们在类中“扩展”该接口而不是“实现”它吗?

public class Max {

    public static <T extends Comparable <T>> T maximum(T x, T y, T z) {
        T max=x;

        if (y.compareTo(max) > 0)
            max=y;

        if (z.compareTo(max) > 0)
            max=z;

        return max;
    }
}

标签: java

解决方案


由于您声明T extends Comparable<T>使用该类型传递的任何对象都T必须实现该Comparable接口。

T可以是您选择的任何对象,只要它具有YourType implement Comparable<YourType>. 所以你传递给你的maximum方法的任何东西都已经实现了compareTo

编辑:哦,语法确实有点与泛型混淆。如果您添加extends SomeInterface到您的泛型类型,它需要一个implements而不是一个extends.


推荐阅读