में किसी विशेष उदाहरण की विधि के संदर्भ में जावा 8 में हम कक्षा के उदाहरण की विधि का संदर्भ ले सकते हैं। यहाँ एक उदाहरणकोटलिन
Function1<Integer, Object> ref = a::getItem;
है एक वर्ग Adapter
विधि Object getItem(int i)
है कि का एक उदाहरण है।
क्या हम कोटलिन में भी ऐसा कर सकते हैं? मैंने सफलता के बिना एक ही वाक्यविन्यास की कोशिश की। अब तक मैं केवल इतना की तरह एक विस्तार विधि संदर्भ बनाने में सक्षम था:
val ref: Adapter.(Int) -> Any = Adapter::getItem
लेकिन यहाँ मैं अभी भी यह आह्वान करने के लिए एक Adapter
का एक उदाहरण की जरूरत है। अन्य alterantive मैं देख रहा हूँ इस तरह एक लैम्ब्डा परिभाषित करने जाता है:
val ref: (Int) -> Any = { a.getItem(it) }
कैप्चरिंग संदर्भ अभी तक समर्थित नहीं हैं, लेकिन भविष्य में –
संभावित डुप्लिकेट [कोटलिन: किसी फ़ंक्शन को दूसरे पैरामीटर के रूप में कैसे पास किया जाए?] (Http://stackoverflow.com/questions/16120697/kotlin- कैसे-टू-पास-ए-फ़ंक्शन-ए-पैरामीटर-टू-सेकंड) – Ram
लैम्बडा का उपयोग करने का आपका विकल्प 1.0 के रूप में वर्तमान सर्वोत्तम तरीका है, हालांकि भविष्य में यह बदलेगा कि एंड्रॉइड ब्रेस्लाव उल्लेख –