首頁 >Java >java教程 >在 Java 中如何安全地將 Long 轉換為 Int?

在 Java 中如何安全地將 Long 轉換為 Int?

DDD
DDD原創
2024-10-26 14:59:31636瀏覽

How Can You Safely Cast a Long to an Int in Java?

在 Java 中安全地將 Long 轉換為 Int

將 long 轉換為 int 可能會導致資訊遺失。為了防止這種情況,必須驗證強制轉換不會改變值。

傳統方法:

一個常見的方法涉及強制轉換為 int,然後強制轉換回來到 long 檢查是否相等。但是,此方法有一個限制:對於大於 2^31-1 的值,它會失敗。

Java 8 解決方案:

Java 8 引入了更強大的解決方案: Math.toIntExact(long).如果轉換導致溢出,此方法會拋出ArithmeticException。

<code class="java">long foo = 10L;
int bar = Math.toIntExact(foo); // Throws ArithmeticException on overflow</code>

其他溢出安全方法:

除了 toIntExact 之外,Java 8 還添加了其他幾個以「exact」結尾的溢出安全方法。這些方法包括:

  • Math.incrementExact(long)
  • Math.subtractExact(long, long)
  • Math.decrementExact(long)
  • Math.negateExact(long)
  • Math.subtractExact(int, int)

使用這些方法可確保資料的完整性並防止意外的整數溢位。

以上是在 Java 中如何安全地將 Long 轉換為 Int?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn