2016-08-17 28 views
0

在泛型中,雖然在構造函數中傳遞Integer值會編譯成功,但在傳遞Short,Long,Byte值時會顯示編譯時錯誤。爲了傳遞上述值,我需要向下轉發這些值,爲什麼?爲什麼編譯器在將短值傳遞給泛型時顯示錯誤

class F <A> { 
     A i; 
     F(A a) 
     { 
     this.i = a; 
     } 
     public static void main(String[] red) 
     { 
     F<Integer> f = new F<Integer>(45); 
     F<Short> f1 = new F<Short>((short)3); 
     } 
    } 

回答

0

數字文字沒有lL類型後綴被視爲int。這是在文檔中所述:

Primitive Data Types

Integer選自int構造,一個Shortshort構成。這就是爲什麼你需要在你的F<Short>案件中輸入一個類型。

相關問題