"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं जावा 8 और उससे आगे के इंट में लॉन्ग को सुरक्षित रूप से कैसे कास्ट कर सकता हूं?

मैं जावा 8 और उससे आगे के इंट में लॉन्ग को सुरक्षित रूप से कैसे कास्ट कर सकता हूं?

2024-11-15 को प्रकाशित
ब्राउज़ करें:623

How Can I Safely Cast a Long to an Int in Java 8 and Beyond?

जावा में लॉन्ग से इंट तक सुरक्षित रूप से कास्टिंग करना (जावा 8 के लिए अपडेट किया गया)

जावा में, लॉन्ग से इंट तक कास्टिंग करना संभावित परिणाम हो सकता है डेटा हानि में. इस चिंता को दूर करने के लिए, एक सुरक्षित और मुहावरेदार दृष्टिकोण आवश्यक है। संभावित सूचना हानि के लिए परिणाम की जांच करने के लिए एक लंबा समय था। इसमें कास्ट परिणाम की तुलना मूल long मान से करना शामिल था:

public static intsafeLongToInt(long l) { int i = (int) l; यदि ((लंबा) i != l) { नया IllegalArgumentException फेंकें(l "इसके मान को बदले बिना int में नहीं डाला जा सकता।"); } वापसी मैं; }

हालाँकि, जावा 8 और इसके बाद के संस्करण में, एक नया विकल्प: Math.toIntExact() विधि, अंकगणित अपवाद:

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;
}

जावा 8 में अतिरिक्त अतिप्रवाह-सुरक्षित तरीके

import static java.lang.Math.toIntExact;

long foo = 10L;
int bar = toIntExact(foo);

Math.incrementExact(long)

Math.subtractExact(long, long)

Math.decrementExact(long)
  • Math.negateExact(long)
  • Math.subtractExact(int, int)
  • Math.toIntExact का उपयोग करके () और इन अतिरिक्त अतिप्रवाह-सुरक्षित तरीकों से, आप सुरक्षित रूप से लंबे मानों को int में डाल सकते हैं और जानकारी खोने के जोखिम के बिना अंकगणितीय संचालन कर सकते हैं।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3