मैं एक बार में बड़े हैश मानचित्र की घोषणा और परिभाषित करने की कोशिश कर रहा हूं।जावा 8: लैम्ब्डा अभिव्यक्तियों के साथ हैश मैप प्रारंभिकरण
public HashMap<Integer, Callable<String>> opcode_only = new HashMap<Integer, Callable<String>>() {{
put(x, y);
put(x, y);
}};
लेकिन, जब मैं put
के शरीर में लैम्ब्डा एक्सप्रेशन का उपयोग करने का प्रयास करें, मैं ग्रहण warrning/त्रुटि पर मार कर रहा हूँ: यह कैसे मैं यह कर रहा है। इस तरह मैं HashMap में लैम्ब्डा का उपयोग करें:
public HashMap<Integer, Callable<String>> opcode_only = new HashMap<Integer, Callable<String>>() {{
put(0,() -> { return "nop"; });
put(1,() -> { return "nothing...."; });
}};
ग्रहण से पहले अल्पविराम के साथ शुरू लैम्ब्डा के पूरे हिस्से को रेखांकित करता है। त्रुटि संदेश:
Syntax error on token ",", Name expected
Syntax error on tokens, Expression expected instead
किसी को भी पता है कि मैं क्या गलत कर रहा हूँ? HashMap
में लैम्ब्डा अभिव्यक्ति द्वारा प्रारंभ किया गया है? कृपया मदद करे।
दिलचस्प सवाल! +1 – fge
'जावैक' में संकलित करता है। क्या आप सुनिश्चित हैं कि आपकी परियोजना के लिए जावा 8 सक्षम है? – axtavt
ऐसा लगता है कि आप पहले एक कंपाइलर के साथ संकलन कर रहे हैं तो संस्करण 8 – Reimeus