मान लें कि मैं एक प्रकार का चर चाहता हूं, टी, जो एक निश्चित वर्ग का विस्तार करता है और एक इंटरफ़ेस लागू करता है। कुछ इस तरह:
class Foo <T : Bar implements Baz> { ... }
कोटलिन में इसके लिए वाक्य रचना क्या है?
मान लें कि मैं एक प्रकार का चर चाहता हूं, टी, जो एक निश्चित वर्ग का विस्तार करता है और एक इंटरफ़ेस लागू करता है। कुछ इस तरह:
class Foo <T : Bar implements Baz> { ... }
कोटलिन में इसके लिए वाक्य रचना क्या है?
जवाबों:
कोण कोष्ठक के अंदर केवल एक ऊपरी बाउंड निर्दिष्ट किया जा सकता है।
जब एक से अधिक बाधाएँ आती हैं, तो कोटलिन सामान्य बाधाओं के लिए अलग-अलग वाक्य-विन्यास प्रस्तुत करता है:
class Foo<T>(val t: T) where T : Bar, T : Baz { ... }
और कार्यों के लिए:
fun <T> f(): Foo where T : Bar, T : Baz { ... }
fun <T> wrapClientListener(listener: RemoteController.OnClientUpdateListener): T where T : RemoteController.OnClientUpdateListener, T : NotificationListenerService:। मुझे टी के प्रकार की परवाह नहीं है। लेकिन जब मैं इस विधि को कॉल करता हूं, तो कोटलिन विशिष्ट प्रकार के लिए पूछता है। तो मैं इस विधि को कैसे कह सकता हूं?