首页  >  文章  >  Java  >  为什么 Java 在赋值给 Long 变量时会抛出“int 类型的文字 xyz 超出范围”?

为什么 Java 在赋值给 Long 变量时会抛出“int 类型的文字 xyz 超出范围”?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-01 05:41:27881浏览

Why Does Java Throw

修复“int 类型的文字 xyz 超出范围”

在 Java 中使用数据类型时,了解它们的含义至关重要值范围。但是,即使为 long 变量赋值,您也可能会遇到错误,指出“int 类型的文字 xyz 超出范围”。

要解决此问题,关键是显式指定 int 的类型值。在Java中,最大2^31-1的整数值可以用int表示,而更大的值则需要long。但是,除非另有明确指定,否则 Java 会隐式地将数字文字解释为 int。

在您的情况下,代码将大于 2^63-1 的值分配给名为 testLong 的 long 变量。由于文字 9223372036854775807 超出了 int 的范围,编译器将其解释为 int 的范围,从而导致错误。

要解决此问题,只需在数字文字的末尾附加一个大写 L 来指示它代表一个long 值:

<code class="java">long testLong = 9223372036854775807L;</code>

通过显式指定文字的类型,可以确保编译器正确地将其分配给适当的数据类型。当使用接近数据类型的最大值或最小值的文字时,这种做法尤其重要,以避免潜在的错误。

以上是为什么 Java 在赋值给 Long 变量时会抛出“int 类型的文字 xyz 超出范围”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn