簡體   English   中英

Java:泛型類型數組作為函數參數

[英]Java: generic type array as function parameter

我有一些Java 8代碼,例如以下代碼段。

public class Test {
  static protected <T extends Comparable<T>> T[] myFunction(T[] arr) {
    // do stuff...
    return arr;
  }

  public static void main(String[] args) {
    int[] a = new int[] {1,4,25,2,5,16};
    System.out.println(Arrays.toString(myFunction(a)));
  }
}

當我嘗試運行它時,出現以下錯誤:

線程“主”中的異常java.lang.Error:未解決的編譯問題:
LottoResult類型的方法myFunction(T [])不適用於參數(int [])

為什么會發生這種情況,以及如何重寫它才能將int[]數組傳遞給myFunction

數組T[]表示該數組是某種引用類型T ,而您正在傳遞原始數組( int[] )。 這就是為什么您會收到編譯錯誤的原因。

為了使其正常工作,您需要執行以下操作:

Integer[] a = new Integer[] {1,4,25,2,5,16};

這將創建引用類型的數組( Integer[] ),因為會發生自動裝箱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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