Rumah  >  Artikel  >  Java  >  Bagaimanakah Anda Boleh Melemparkan Panjang ke Int dengan Selamat di Jawa?

Bagaimanakah Anda Boleh Melemparkan Panjang ke Int dengan Selamat di Jawa?

DDD
DDDasal
2024-10-26 14:59:31538semak imbas

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

Mengirim Long ke Int Dengan Selamat di Java

Menyalurkan panjang ke int berpotensi mengakibatkan kehilangan maklumat. Untuk mengelakkan perkara ini, adalah penting untuk mengesahkan bahawa pelakon tidak mengubah nilai.

Pendekatan Tradisional:

Satu pendekatan biasa melibatkan penghantaran ke int dan kemudian menghantar semula lama untuk memeriksa kesaksamaan. Walau bagaimanapun, kaedah ini mempunyai had: ia gagal untuk nilai yang lebih besar daripada 2^31-1.

Penyelesaian Java 8:

Java 8 memperkenalkan penyelesaian yang lebih mantap: Math.toIntExact(panjang). Kaedah ini membuang ArithmeticException jika cast mengakibatkan limpahan.

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

Kaedah Limpahan-Selamat Lain:

Selain kepadaIntExact, Java 8 juga menambah beberapa lagi kaedah limpahan selamat yang berakhir dengan "tepat". Kaedah ini termasuk:

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

Menggunakan kaedah ini memastikan integriti data anda dan mengelakkan limpahan integer yang tidak dijangka.

Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Melemparkan Panjang ke Int dengan Selamat di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn