在 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」結尾的溢出安全方法。這些方法包括:
使用這些方法可確保資料的完整性並防止意外的整數溢位。
以上是在 Java 中如何安全地將 Long 轉換為 Int?的詳細內容。更多資訊請關注PHP中文網其他相關文章!