为什么Java编译器不能直接将int
强制转换为Long
?
long test = 1; // ok
Long test2 = 2; // does not compile!
Long test3 = 3L; // ok
由于(当然)一个人可以做,这尤其令人沮丧
long test = 1;
Long test2 = test;
这是故意设计的选择吗?如果允许这样做会出什么问题?
答案 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
,因为它是单个隐式转换。从Long
到int
的一步转换是两次转换,不支持。
有关整数后缀语法Long
,请参见JLS 3.1。 100L
将值的类型设置为L
,而不是整数,这是整数类型的默认情况。