在Comparable中使用泛型

4 java generics

我正在尝试使用Comparable<T>接口在Java中实现泛型.

public static <T> T[] sort(T[] a) {
    //need to compare 2 elements of a
}
Run Code Online (Sandbox Code Playgroud)

比方说,我想在接口中覆盖compareTo上述类型的方法.即我需要比较我的类型的两个元素,我将如何做?我不知道我的类型是什么.TComparableTT

jjn*_*guy 9

您需要在方法上设置类型约束.

public static <T extends Comparable<? super T>> T[] sort (T[] a)
{
         //need to compare 2 elements of a
}
Run Code Online (Sandbox Code Playgroud)

这会强制类型T具有该compareTo(T other)方法.这意味着您可以在方法中执行以下操作:

if (a[i].compareTo(a[j]) > 0) }

}
Run Code Online (Sandbox Code Playgroud)