Menyalurkan Long ke Int dengan Selamat di Java (Dikemas kini untuk Java 8 )
Di Java, penghantaran dari long ke int berpotensi menghasilkan dalam kehilangan data. Untuk menangani kebimbangan ini, pendekatan yang selamat dan idiomatik adalah penting.
Kaedah Java 8's Math.toIntExact()
Sebelum Java 8, kaedah yang disyorkan untuk menghantar dengan selamat lama ke int adalah untuk menyemak keputusan untuk potensi kehilangan maklumat. Ini melibatkan membandingkan hasil lakonan dengan nilai panjang asal:
<code class="java">public static int safeLongToInt(long l) { int i = (int) l; if ((long) i != l) { throw new IllegalArgumentException(l + " cannot be cast to int without changing its value."); } return i; }</code>
Walau bagaimanapun, dalam Java 8 dan ke atas, a更为简洁有效的方法已被引入:Math.toIntExact()方喹法。法。发生溢出时会抛出Pengecualian Aritmetik:
<code class="java">import static java.lang.Math.toIntExact; long foo = 10L; int bar = toIntExact(foo);</code>
Kaedah Limpahan-Selamat Tambahan di Java 8
Selain daripada beberapa limpahan IntExact(), Java 8 lain yang diperkenalkan -kaedah selamat yang berakhir dengan "tepat". Kaedah ini melaksanakan operasi seperti penambahan, penolakan, penolakan dan penyusutan semasa menyemak potensi limpahan:
Dengan menggunakan Math.toIntExact () dan kaedah selamat limpahan tambahan ini, anda boleh menghantar nilai panjang ke int dengan selamat dan melakukan operasi aritmetik tanpa risiko kehilangan maklumat.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Hantar Panjang dengan Selamat ke Int dalam Java 8 dan Seterusnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!