التحويل الآمن لفترة طويلة إلى Int في Java (تم التحديث لـ Java 8)
في Java، يمكن أن يؤدي التحويل من long إلى int إلى في فقدان البيانات. لمعالجة هذه المشكلة، يعد اتباع نهج آمن واصطلاحي أمرًا ضروريًا.
طريقة Math.toIntExact() في Java 8
قبل Java 8، كانت الطريقة الموصى بها للإرسال بأمان كان الأمر طويلًا بالنسبة إلى int هو التحقق من النتيجة بحثًا عن فقدان محتمل للمعلومات. يتضمن ذلك مقارنة نتيجة الإرسال بالقيمة الطويلة الأصلية:
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;
}
&&&]ومع ذلك، في Java 8 والإصدارات الأحدث، يتم حل مشكلة ArithmeticException: Math.toIntExact(). &]استيراد ثابت java.lang.Math.toIntExact; طويل فو = 10 لتر؛ int bar = toIntExact(foo);
import static java.lang.Math.toIntExact;
long foo = 10L;
int bar = toIntExact(foo);
طرق إضافية آمنة لتجاوز السعة في Java 8 بالإضافة إلى toIntExact()، قدمت Java 8 العديد من الطرق الأخرى الآمنة لتجاوز السعة التي تنتهي بـ "بالضبط". تقوم هذه الطرق بتنفيذ عمليات مثل الجمع والطرح والنفي والتناقص أثناء التحقق من التجاوزات المحتملة:
Math.incrementExact(long)تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3