Java自动装箱int到Long

时间:2019-03-05 12:42:05

标签: java casting autoboxing

为什么Java编译器不能直接将int强制转换为Long

long test = 1; // ok
Long test2 = 2; // does not compile!
Long test3 = 3L; // ok

由于(当然)一个人可以做,这尤其令人沮丧

long test = 1;    
Long test2 = test;

这是故意设计的选择吗?如果允许这样做会出什么问题?

1 个答案:

答案 0 :(得分:0)

Iterate n number of rows if(string1 == T & sting2 == F){ if(va1 > 1 & var2 > 1){ # do some operation and append to new column # For example new column <- var1 + var2 } elif(var1 == 0 & var2 > 1){ # Do some adds / subs with var1 & var2 and append to new column } elif{var1 > 1 & var2 ==0){ # Do some adds / subs with var1 & var2 and append to new column } } elif(string1 == F & sting2 == T){ # again repeat set of if-else opration on var1 and var2 as mentioned in above if else condition } elif(nth condition) 是Java中的原始数据类型。 int也是原始数据类型,但是long也不是原始数据类型。 隐式转换不能那样工作。您必须明确地告诉Java将其转换为Long类型的对象。

可以将Long隐式转换为long,因为它是单个隐式转换。从Longint的一步转换是两次转换,不支持。

有关整数后缀语法Long,请参见JLS 3.1100L将值的类型设置为L,而不是整数,这是整数类型的默认情况。