मैं परिणामों की एक गुच्छा के माध्यम से लूप के लिए कई पुरानी शैली के स्थान पर जावा 8 स्ट्रीम का उपयोग कर रहा हूं और सारांश आंकड़े प्रस्तुत करता हूं।इंटस्ट्रीम वास्तव में कब बंद होता है? क्या सोनारक्यूब एस 20 9 5 इंटस्ट्रीम के लिए झूठा सकारात्मक है?
int messages = IntStream.rangeClosed(0, 7).map(ids::get).reduce(Integer::sum).getAsInt();
नोट: उदाहरण के लिए: मैं जानता हूँ कि वहाँ गिनती कि मैं ऊपर दिखाने के ऐसा करने के लिए अन्य तरीके हैं। मैं अपने प्रश्न को स्पष्ट करने के लिए ऐसा कर रहा हूं।
मैं जावा 3.9 प्लगइन के साथ सोनारक्यूब 5.3 का उपयोग कर रहा हूं। उस कॉन्फ़िगरेशन में, कोड की उपरोक्त पंक्ति मुझे स्क्विड नियम S2095 का उल्लंघन देती है: "संसाधन बंद होना चाहिए।" नतीजा यह है कि मैं यह देखने की उम्मीद करूंगा कि एक ऑटोक्लोसेबल (उदा।, एक फ़ाइल इनपुटस्ट्रीम) खोला गया था लेकिन कभी बंद नहीं हुआ।
तो मेरा प्रश्न यहां है: क्या टर्मिनल ऑपरेशन reduce
स्ट्रीम बंद करता है? इसे होना चाहिए? या यह स्क्विड नियम में एक झूठी सकारात्मक है?
'' 'इंटस्ट्रीम' '' '' '' '' '' बेसस्ट्रीम'' वर्ग से प्राप्त विधि ' आप इस हैंडलर का उपयोग कर स्ट्रीम बंद होने या बंद होने पर जांच कर सकते हैं। – saka1029
मॉनिटर https://jira.sonarsource.com/browse/SONARJAVA-1478 – PaoloC