繁体   English   中英

Java LONG整数类型

[英]Java LONG integer types

您是否需要将Long变量定义为

Long myUserId = 1L;

你怎么不能做Long myUserId = 1;

Long myUserId = 1;   // error

不起作用,因为1是一个int。

它会被自动装箱:

Integer myUserId = 1;   // ok

它也将扩大到:

long myUserId = 1;      // also ok

但不是两个。

所以,是的,你必须说

Long myUserId = 1L;  

这是一个long ,可以自动进入Long

至于为什么它以这种方式工作(或者说在这种情况下不起作用):很可能是因为稍后添加了自动装箱(在Java5中),并且必须绝对向后兼容。 这限制了他们能够“平稳”地做到这一点。

否则,Java会将所有数字类型默认为Integer。

“1L”甚至被允许分配给Long (而不是原始long )的唯一原因是由于Java 5引入了“自动装箱”。

没有“1L”,在幕后,这看起来像没有“L”的下面:

Long myUserId = Integer.valueOf(1);

...我希望显然可以自己解释。 :-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM