ホームページ  >  記事  >  Java  >  Java が Long 変数に代入するときに「int 型のリテラル xyz は範囲外です」をスローするのはなぜですか?

Java が Long 変数に代入するときに「int 型のリテラル xyz は範囲外です」をスローするのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-01 05:41:27877ブラウズ

Why Does Java Throw

「int 型のリテラル xyz が範囲外です」の修正

Java でデータ型を扱う場合、そのデータ型を理解することが重要です値の範囲。ただし、long 変数に値を割り当てる場合でも、「int 型のリテラル xyz は範囲外です」というエラーが発生する場合があります。

これを解決するには、変数の型を明示的に指定することが重要です。値。 Java では、2^31-1 までの整数値は int で表現できますが、それより大きな値には long が必要です。ただし、明示的に指定されていない限り、Java は暗黙的に数値リテラルを int として解釈します。

この場合、コードは 2^63-1 より大きい値を testLong という名前の long 変数に割り当てます。リテラル 9223372036854775807 は int の範囲を超えているため、コンパイラーはそれをそのように解釈し、エラーが発生します。

これを修正するには、数値リテラルの末尾に大文字の L を追加して、それが を表すことを示すだけです。 long value:

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

リテラルの型を明示的に指定することで、コンパイラーがリテラルを適切なデータ型に正しく割り当てることができます。この実践は、潜在的なエラーを避けるために、データ型の最大値または最小値に近いリテラルを扱う場合に特に重要です。

以上がJava が Long 変数に代入するときに「int 型のリテラル xyz は範囲外です」をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。