मैं Java
में लैम्बडास का उपयोग करने की कोशिश कर रहा हूं लेकिन यह समझ में नहीं आता कि यह कैसे काम करता है। मेरे द्वारा बनाए गए @FunctionalInterface
इस तरह:जावा में FunctionalInterfaces में Lambdas
@FunctionalInterface
public interface MyFunctionalInterface {
String getString(String s);
}
अब मेरी कोड में मैं lambda
यहाँ के रूप में उपयोग:
MyFunctionalInterface function = (f) -> {
Date d = new Date();
return d.toString() + " " + person.name + " used fnc str";
};
इसके बाद, मैं इसे एक और वर्ग के निर्माता में गुजर मेरी function
का उपयोग करना चाहते हैं और इस तरह इसका इस्तेमाल:
public SampleClass(MyFunctionalInterface function) {
String tmp = "The person info: %s";
this.result = String.format(tmp, function.getString(String.valueOf(function)));
}
क्यों मैं इसे यहाँ valueOf()
उपयोग करने की आवश्यकता? मैंने सोचा कि इसके लिए धन्यवाद मैं केवल function.getString()
का उपयोग कर सकता हूं?
आउटपुट: Tue Sep 19 11:04:48 CEST 2017 John used fnc str
आपका समारोह एक के रूप में एक 'स्ट्रिंग' लेता है:
वैकल्पिक रूप से, आप अपने कार्यात्मक इंटरफ़ेस की विधि से तर्क को हटा सकते हैं पैरामीटर। अपने स्ट्रिंग प्रारूप को पढ़ना, आपको व्यक्ति की जानकारी को 'स्ट्रिंग' के रूप में पास करनी चाहिए। अभी, आप फ़ंक्शन में फ़ंक्शन की स्ट्रिंग प्रस्तुति को पारित कर रहे हैं। – marstran
यह वास्तव में स्पष्ट नहीं है कि आप क्या हासिल करने की कोशिश कर रहे हैं। मैं उस स्थान पर लैम्बडा परिभाषा की अपेक्षा करता हूं जहां आप फ़ंक्शन का उपयोग करते हैं। या आप एक विधि संदर्भ का उपयोग करें। मुझे लगता है कि आपके पास अभी जो कोड है वह ओबीजेईसीटी को बदल देगा जो फ़ंक्शन भी उसमें एक स्ट्रिंग प्रस्तुति का प्रतिनिधित्व करता है और बनाता है, जिसे फ़ंक्शन में इनपुट के रूप में पास किया जाता है। बस समझ में नहीं आता है। – GhostCat
इस कोड का आउटपुट क्या है? – jrook