पर मैं java8 के अंदर बूलियन वैरिएबल को बदलने के लिए कोशिश कर रहा हूं, प्रत्येक लूप को सच है जो अंतिम नहीं है। लेकिन मुझे निम्न त्रुटि मिल रही है: एक संलग्न क्षेत्र में परिभाषित स्थानीय चर आवश्यक या अंतिम रूप से अंतिम होना चाहिए।जावा 8 प्रभावी रूप से अंतिम अंतिम संकलन समय त्रुटि गैर अंतिम चर
इस त्रुटि को हल करने के लिए कैसे करें?
कोड:
boolean required = false;
यह चर मैं समारोह में बनाया गया है।
अब जब मैं इसे बदलने के लिए कोशिश कर रहा हूँ:
map.forEach((key, value) -> {
System.out.println("Key : " + key + " Value : " + value);
required = true;
});
मैं त्रुटि हो रही है: स्थानीय चर एक संलग्न दायरे में परिभाषित की आवश्यकता अंतिम या प्रभावी ढंग से अंतिम होना चाहिए।
यह त्रुटि क्यों उत्पन्न हो रही है और इसे कैसे हल किया जाए?
कुछ इस तरह: सबसे गंदा तरीका: एक एक तत्व सरणी की घोषणा: बूलियन [] की आवश्यकता = {असत्य}; और इसके बजाय इस तत्व को सेट करें: आवश्यक [0] = सत्य; मैं वास्तव में करना चाहता हूं लेकिन जैसा कि आपने कहा था कि यह गंदा दिखता है। स्थानीय चर बदलने के लिए कोई अन्य तरीका है lambda अभिव्यक्ति @tagirValeev –
@ सिद्धार्थ, स्थानीय चर बदलने के लिए वास्तव में कोई रास्ता नहीं है। 'बुलियन [] आवश्यक' मामले में आप स्थानीय चर नहीं बदलते हैं, बल्कि इसके बजाय हीप ऑब्जेक्ट को बदलते हैं। –
बस मेरे ज्ञान को बढ़ाने के लिए आप कृपया बता सकते हैं कि हेड ऑब्जेक्ट को बदलकर वास्तव में क्या मतलब है लेकिन स्थानीय चर बदलना। @tagirValeev –