ग्रहण आईडीई का उपयोग कर जावा कोड में संभावित संख्यात्मक अतिप्रवाह खोजने का कोई तरीका है? उदाहरण के लिए ...ग्रहण का उपयोग करते हुए, जावा कोड में संभावित संख्यात्मक अतिप्रवाह कैसे प्राप्त करें?
long aLong = X * Y * Z;
... जहां एक्स, Y, और Z ints कर रहे हैं और परिणाम Integer.MAX_VALUE अतिप्रवाह हो सकता है। (ध्यान दें, शायद काउंटर-इंट्यूटिवली, अगर इस उदाहरण में परिणाम Integer.MAX_VALUE ओवरफ्लो हो जाता है, तो एलोन को गलत ओवरफ्लोल्ड वैल्यू असाइन किया जाएगा)।
मैंने ग्रहण की चेतावनी सेटिंग्स, पीएमडी नियम, और FindBugs नियमों में देखा है और मुझे इसके साथ मदद करने के लिए कोई सेटिंग नहीं मिल रही है। एक सहकर्मी नोट करता है कि इंटेलिजे इस बारे में चेतावनी देगा ... और मुझे यह स्वीकार करना होगा कि मैं ग्रहण के साथ ऐसा नहीं कर सकता। ;-)
स्पष्टीकरण 1:। मैं कुछ है कि 0 झूठे सकारात्मक ... बस चेतावनी "आप एक अतिप्रवाह समस्या यहाँ हो सकता है" कि,
स्पष्टीकरण 2 देता है के लिए नहीं देख रहा हूँ: यह पर "विकास समय" ... अर्थ वांछित है, एक ही स्तर पर है कि ग्रहण अप्रयुक्त आयात की तलाश में है, PMD अपने नियमों में जाँच कर रहा है, आदि
तो क्या आप किसी भी अंकगणितीय ऑपरेशन की चेतावनी देना चाहते हैं? ए = एक्स + वाई ओवरफ्लो हो सकता है यदि एक्स, एक्स और वाई एक ही अभिन्न प्रकार – Mark
हैं, तो मैं भी इस तरह की जांच करना चाहता हूं, लेकिन केवल गुणा के लिए। मैं प्रतियोगिता प्रोग्रामिंग कर रहा हूं और आम तौर पर मान 10^9 तक हैं, इसलिए अतिरिक्त कोई समस्या नहीं है, लेकिन गुणा है और मैं चेतावनी देना चाहता हूं, अन्यथा मैं '1L * x * y' चाल भूल जाता हूं ... – Betlista