[英]Can I use <T implements Comparable> or just <Comparable>
我可以使用<T implements ..>
代替<T extends...>
嗎?
我不能在沒有擴展/實現的情況下使用<Comparable>
嗎?
為什么或者為什么不?
class SomeClass
{
public static <T extends Comparable> somemethod(T[] a)
{
// do stuff
}
}
Comparable
是一個通用型(和接口 ),所以你必須擴展 ,你不能執行 -這是Java泛型是如何工作的,也是你的方法缺少返回簽名。 您可以使用下界通配符,例如
public static <T extends Comparable<? super T>> T[] somemethod(T... a) {
Arrays.sort(a);
return a;
}
它應該可以按您期望的那樣工作1 。 例如,
public static void main(String[] args) {
System.out.println(Arrays.toString(somemethod(4, 3, 1, 2)));
System.out.println(Arrays.toString(somemethod(new Integer[] { 8, 7, 6, 5 })));
}
輸出
[1, 2, 3, 4]
[5, 6, 7, 8]
1 在這里,一個可變參數(varargs)函數進行排序,但您可以根據需要使用數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.