2014-12-30 27 views
2

所以我一直對下一個代碼得到一個錯誤。我不知道我做錯了什麼。 該錯誤是在型主的方法printArray(T [])是不適用的參數(INT [])Java泛型:不能創建一個簡單的打印陣列方法

public class main { 

    public static void main(String[] args) { 
     Oefening1 oef = new Oefening1(); 
     int[] integerArray = {1,2,3,4,5}; 
     printArray(integerArray); 
    } 

    public static <T> void printArray(T[] arr){ 
     for(T t: arr){ 
      System.out.print(t + " "); 
     } 
     System.out.println(""); 
    } 

} 

回答

0

當涉及到泛型,Java使得衍生原始類型和類型之間的差從java.lang.Object。只有非原始類型可以用作泛型方法的參數。由於int不是通用的,因此printArray<T>不適用於此。

可以,或者通過integerArrayInteger[]通過int提供過載修復:

Integer[] integerArray = {1,2,3,4,5}; 
printArray(integerArray); 

Demo.

這部作品的原因是,在對象Integer包裝int適合傳遞給仿製藥。但是,這需要Java編譯器提供很多幫助,因爲當您編寫{1,2,3,4,5}時,它會在場景後面轉換爲{Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(3), Integer.valueOf(4), Integer.valueOf(5)}

0

它,因爲你使用的基本類型的數據類型。如果使用Integer [] integerArray = {1,2,3,4,5};而不是int [] integerArray = {1,2,3,4,5} ;.它應該工作。