मैं की तरहKotlin एक जावा वर्ग इंटरफेस: दुर्घटना ओवरराइड
public class ThirdParty {
public String getX() {
return null;
}
}
एक वर्ग के साथ एक तीसरी पार्टी जावा पुस्तकालय है मैं भी तरह
interface XProvider {
val x: String?
}
kotlin में एक अंतरफलक है अब मैं विस्तार करना चाहते ThirdParty
कक्षा और XProvider
इंटरफ़ेस को लागू करें। यह ठीक मेरी विरासत जावा कोड में काम कर दिया गया है:
public class JavaChild extends ThirdParty implements XProvider {}
हालांकि, मैं जितना संभव हो उतना kotlin लिखने के लिए चाहते हैं और मेरे जावा वर्गों kotlin में बदलने की कोशिश कर रहा हूँ। दुख की बात है, निम्नलिखित काम नहीं करता:
class KotlinChild: ThirdParty(), XProvider
त्रुटि
class 'KotlinChild1' must be declared abstract or implement abstract member public abstract val x: String? defined in XProvider
है हालांकि, अगर मैं ऐसा कुछ
class KotlinChild1: ThirdParty(), XProvider {
override val x: String? = null
}
जैसे मैं
error: accidental override: The following declarations have the same JVM signature (getX()Ljava/lang/String;)
fun <get-x>(): String?
fun getX(): String!
override val x: String? = null
मिल क्या काम करता है निम्नलिखित बदसूरत काम-आसपास:
class KotlinChild: JavaChild()
आपने क्या त्रुटि मिलता है? – marstran
क्षमा करें, भूल गया। मैंने प्रश्न – dpoetzsch
को अद्यतन किया [संभावित कोटलिन में दुर्घटनाग्रस्त ओवरराइड त्रुटियों को हल करना] (http://stackoverflow.com/questions/32970923/resolving-accidental-override-errors-in-kotlin) – mfulton26