This might be a silly thing but how is this possible that compiler will show this while Long.Max = 9223372036854775807
?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
You must have Long
literals in Java ending with an L
, adding an L
to your integer will correct your issue, like so: Long s = 9223372036854775806L
This is because by default Java interprets all integers as 32-bit (int
), the suffix L
ensures that your integer is interpreted as 64-bit.
回答2:
just put 'l' or 'L' in the end of it and it will be ok, like:
long a = 9223372036854775807L;
回答3:
Use Long s = 9223372036854775806L