मैं समझता हूं कि जावा में एक लैम्ब्डा एक अपवाद अपवाद नहीं फेंक सकता है, लेकिन एक रनटाइम अपवाद फेंक सकता है, लेकिन नीचे दिए गए कोड को ब्रैकेट की आवश्यकता क्यों है?एक जावा लैम्ब्डा जो रनटाइम अपवाद को फेंकता है, को ब्रैकेट की आवश्यकता क्यों होती है?
Map<String, Integer> m = new HashMap<>();
Integer integer = m.computeIfAbsent("", s -> {throw new IllegalArgumentException("fail");});
आपके पास क्यों नहीं हो सकता है?
m.computeIfAbsent("", s -> throw new IllegalArgumentException("fail"));
यह संकलक है कि यह इस उदाहरण में एक पूर्णांक वापसी होगी की धारणा की वजह से है, इसलिए की वजह एक अपवाद की वापसी नहीं हो सकता है, भले ही इसके फेंक दिया?
मूल रूप से, 's-> expr' फ़ॉर्म केवल अभिव्यक्तियों के लिए काम करता है। 'फेंक 'एक बयान है। – ZhongYu
आह, यह समझ में आता है, अगर आप इसे उत्तर में डालते हैं तो मैं इसे चिह्नित उत्तर – Ash
के रूप में रखूंगा आप इसे [this] (http://stackoverflow.com/q/41482574/2711488) और [वह] भी पढ़ सकते हैं (http://stackoverflow.com/q/24146285/2711488)... – Holger