ホームページ  >  記事  >  Java  >  Java で Long を Int に安全にキャストするにはどうすればよいですか?

Java で Long を Int に安全にキャストするにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-26 13:58:02359ブラウズ

How Can I Safely Cast Long to Int in Java?

Java で Long を Int に安全にキャストする: 包括的なソリューション

Java で数値型を扱う場合、キャストが確実に行われるようにすることが重要です操作によってデータが失われることはありません。これは、long の精度が int の精度を超える可能性があるため、long 値を int にキャストする場合に特に重要です。

Java 8: プロセスの簡素化

Java 8 より前、long を int に安全にキャストするには、キャストによって値が変更されていないことを確認するための面倒なチェックが必要でした。ただし、Java 8 の導入により、このプロセスを合理化する新しいメソッドが追加されました。

<code class="java">import static java.lang.Math.toIntExact;

long foo = 10L;
int bar = toIntExact(foo);</code>

キャストによってオーバーフローが発生する場合、toIntExact メソッドは ArithmeticException をスローし、データの整合性が確実に維持されます。

追加のオーバーフロー セーフ メソッド

Java 8 では、他のいくつかのオーバーフロー セーフ メソッドも導入されました。これらのメソッドはすべて "exact" で終わり、次の機能を提供します:

  • Math.incrementExact(long): Long 値を 1 ずつインクリメントします。
  • Math.subtractExact(long, long) ): ある Long 値を別の Long 値から減算します。
  • Math.decrementExact(long): Long 値を 1 減算します。
  • Math.negateExact(long): Long 値を否定します。
  • Math.subtractExact(int, int): ある int 値を別の int 値から減算します。

結論

toIntExact メソッドとその他のオーバーフローを利用することで、 Java 8 で安全なメソッドが追加されたため、開発者はデータの精度を犠牲にすることなく、自信を持って long 値を int にキャストできます。これは、数値計算の整合性を維持し、コードの信頼性を確保するために非常に重要です。

以上がJava で Long を Int に安全にキャストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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