मैं जावा 8 सुविधाओं का उपयोग करने की कोशिश कर रहा हूं। official tutorial पढ़ते समय मैं इस कोडजावा 8 काम में यह लैम्ब्डा सुविधा कैसे है?
static void invoke(Runnable r) {
r.run();
}
static <T> T invoke(Callable<T> c) throws Exception {
return c.call();
}
में आए और एक सवाल था:
जो विधि निम्नलिखित बयान में लागू किया जाएगा "
String s = invoke(() -> "done");
और इसका उत्तर
था 210विधि
invoke(Callable<T>)
लागू की जाएगी क्योंकि यह विधि एक मान देता है; विधिinvoke(Runnable)
नहीं है। इस मामले में, लैम्ब्डा अभिव्यक्ति() -> "done"
का प्रकारCallable<T>
है।
मैं invoke
के बाद से समझते हैं के रूप में एक String
लौटने की उम्मीद है, यह प्रतिदेय का आह्वान कहता है। लेकिन, यह सुनिश्चित नहीं है कि यह वास्तव में कैसे काम करता है।
मैंने आपके प्रश्न को थोड़ा बदल दिया (अधिक जानकारी और ट्यूटोरियल से लिंक जोड़ने के लिए)। अगर आपको लगता है कि मैंने अपना संपादन रोलबैक करने के लिए बहुत ज्यादा महसूस किया है। – Pshemo
@Pshemo संपादन के लिए धन्यवाद। मैं यही पूछना चाहता था। –