मैं कुछ कोड है जो मुझे पढ़ने का एक सा होने के बावजूद समझने के लिए संघर्ष कर रहा हूँ का सामना करना पड़ा से बनाया जाता है। एक विधि के लिए एक कॉल है जो दो तर्कों में होता है, जिनमें से एक एक रननेबल है। एक लम्बाई वस्तु में गुजरने के बजाय हालांकि एक भेड़ का बच्चा है।कैसे Runnable Java8 लैम्ब्डा
उदाहरण के लिए: -> {}
public class LambdaTest { private final Lock lock = new ReentrantLock(); @Test public void createRunnableFromLambda() { Locker.runLocked(lock,() -> { System.out.println("hello world"); }); } public static class Locker { public static void runLocked(Lock lock, Runnable block) { lock.lock(); try { block.run(); } finally { lock.unlock(); } } } }
तो मेरे सवाल है, तो आप व्याख्या कर सकते हैं कि कैसे एक Runnable लैम्ब्डा से बनाई गई है, और यह भी कृपया कोई वाक्य रचना () समझा सकता है। विशेष रूप से,() ब्रैकेट का क्या अर्थ है?
धन्यवाद।
गाइड के टन ऑनलाइन
(मैं बहुत यकीन है कि यह बाईटकोड-बराबर नहीं है, लेकिन कार्यक्षमता के मामले में बराबर है कर रहा हूँ) के बराबर * है इस। '() -> {}' '()' कार्यात्मक इंटरफेस में घोषित विधि के लिए औपचारिक मानकों का प्रतिनिधित्व करता है। '{}' उस विधि के लिए शरीर है। '-> 'पैरामीटर को शरीर से अलग करता है। –