可能是重复问题:
Java: Long result = -1: cannot convert from int to long
例如,Integer foo = 4
和 Long foo = 4L
都可以编译通过,但是 Long foo = 4
不行。这是有原因的吗?
可能是重复问题:
Java: Long result = -1: cannot convert from int to long
例如,Integer foo = 4
和 Long foo = 4L
都可以编译通过,但是 Long foo = 4
不行。这是有原因的吗?
Long foo = 4;
意思是:将值为4的int赋给Long类对象。它会尝试使用自动装箱来完成这个操作,但失败了,因为自动装箱只适用于相应的基本类型。可以有两种方式解决:
Long foo = (long) 4;
Long foo = 4L;
int
4转换为long
4。而在第二种情况下,您提供了一个长整型数字。
Double d = 1.5f
这样的“float到Double”也行不通。自动扩展+装箱并没有被明确定义。要求程序员进行强制类型转换比指定所有可能的扩展/缩小+装箱/拆箱情况要容易得多。 - Andreas Dolk