簡體   English   中英

我可以用嗎 <T implements Comparable> 要不就 <Comparable>

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM