Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
可能重复: Java:长结果 = -1:无法从 int 转换为 long
例如Integer foo = 4,Long foo = 4L两者都编译,但Long foo = 4没有。这有什么理由吗?
Integer foo = 4
Long foo = 4L
Long foo = 4
Long foo = 4;
表示:将int值 4 分配给 class 的对象Long。它将尝试使用自动装箱来执行此操作并失败,因为自动装箱仅适用于适当的原语。它可以通过两种方式修复:
int
Long
Long foo = (long) 4; Long foo = 4L;
在第一种情况下,您将int4 转换为long4。在第二种情况下,您提供了一个多头。
long
回答这个问题:Java 不支持自动转换并且在类型方面非常严格,这可能是它不支持自动转换的原因。