मैं अपने कुछ जावा कोड को कोटलिन में परिवर्तित कर रहा हूं और मुझे समझ में नहीं आ रहा है कि कोटलीन कोड में परिभाषित इंटरफेस को तुरंत कैसे किया जाए। एक उदाहरण के रूप में, मेरे पास एक इंटरफ़ेस है (जावा कोड में परिभाषित):
public interface MyInterface {
void onLocationMeasured(Location location);
}
और फिर अपने कोटलिन कोड में मैं इस इंटरफेस को तुरंत समाप्त करता हूं:
val myObj = new MyInterface { Log.d("...", "...") }
और यह ठीक काम करता है। हालाँकि, जब मैं MyInterface को कोटलिन में परिवर्तित करता हूं:
interface MyInterface {
fun onLocationMeasured(location: Location)
}
मुझे एक त्रुटि संदेश मिलता है: Interface MyListener does not have constructorsजब मैं इसे तुरंत करने की कोशिश करता हूं - हालांकि मुझे ऐसा लगता है कि सिंटैक्स के अलावा कुछ भी नहीं बदला है। क्या मुझे गलतफहमी है कि कोटलिन में इंटरफेस कैसे काम करते हैं?
Location -> Unitयदि संभव हो तो एकल-विधि इंटरफेस के बजाय कार्यात्मक प्रकार (जैसे ) का उपयोग करना बेहतर है - क्या यह सही है?