「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Java で Long を Int に安全にキャストするにはどうすればよいですか?

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

2024 年 11 月 9 日に公開
ブラウズ:690

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 の導入により、このプロセスを効率化する新しいメソッドが追加されました。

import static java.lang.Math.toIntExact;

long foo = 10L;
int bar = toIntExact(foo);

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 にキャストできます。これは、数値計算の整合性を維持し、コードの信頼性を確保するために非常に重要です。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3