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

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

Oct 26, 2024 pm 02:59 PM

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.

1

2

<code class="java">long foo = 10L;

int bar = Math.toIntExact(foo); // Throws ArithmeticException on overflow</code>

Salin selepas log masuk

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 Laman Web ini
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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka? Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka? Mar 17, 2025 pm 05:35 PM

Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka?

Rangka Kerja 4 JavaScript teratas pada tahun 2025: React, Angular, Vue, Svelte Rangka Kerja 4 JavaScript teratas pada tahun 2025: React, Angular, Vue, Svelte Mar 07, 2025 pm 06:09 PM

Rangka Kerja 4 JavaScript teratas pada tahun 2025: React, Angular, Vue, Svelte

Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan? Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan? Mar 17, 2025 pm 05:46 PM

Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan?

Node.js 20: Peningkatan Prestasi Utama dan Ciri -ciri Baru Node.js 20: Peningkatan Prestasi Utama dan Ciri -ciri Baru Mar 07, 2025 pm 06:12 PM

Node.js 20: Peningkatan Prestasi Utama dan Ciri -ciri Baru

Iceberg: Masa Depan Jadual Data Tasik Iceberg: Masa Depan Jadual Data Tasik Mar 07, 2025 pm 06:31 PM

Iceberg: Masa Depan Jadual Data Tasik

Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas? Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas? Mar 17, 2025 pm 05:43 PM

Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas?

Spring Boot Snakeyaml 2.0 CVE-2022-1471 Isu Tetap Spring Boot Snakeyaml 2.0 CVE-2022-1471 Isu Tetap Mar 07, 2025 pm 05:52 PM

Spring Boot Snakeyaml 2.0 CVE-2022-1471 Isu Tetap

Bagaimanakah saya dapat melaksanakan teknik pengaturcaraan berfungsi di Java? Bagaimanakah saya dapat melaksanakan teknik pengaturcaraan berfungsi di Java? Mar 11, 2025 pm 05:51 PM

Bagaimanakah saya dapat melaksanakan teknik pengaturcaraan berfungsi di Java?

See all articles