2016-08-17 45 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>案件中输入一个类型。

相关问题