डेटा कक्षाएं जावा में पुराने-पुराने पीओजेओ के प्रतिस्थापन प्रतीत होती हैं। यह काफी उम्मीद है कि ये वर्ग विरासत की अनुमति देंगे, लेकिन मैं डेटा वर्ग का विस्तार करने का कोई सुविधाजनक तरीका नहीं देख सकता हूं।कोटलिन में डेटा क्लास बढ़ाएं
open data class Resource (var id: Long = 0, var location: String = "")
data class Book (var isbn: String) : Resource()
कोड ऊपर component1()
तरीकों में से टकराव के कारण विफल रहता: क्या मैं जरूरत है कुछ इस तरह है। कक्षाओं में से केवल एक में data
एनोटेशन छोड़ने से काम भी नहीं होता है।
शायद डेटा वर्गों का विस्तार करने के लिए एक और मुहावरे है?
यूपीडी: मैं केवल बाल बाल वर्ग को एनोटेट कर सकता हूं, लेकिन data
एनोटेशन केवल कन्स्ट्रक्टर में घोषित संपत्तियों को संभालता है। जो है, मैं सभी माता पिता के गुण open
घोषित करने और ओवरराइड उन्हें, जो बदसूरत है करने के लिए होगा:
open class Resource (open var id: Long = 0, open var location: String = "")
data class Book (
override var id: Long = 0,
override var location: String = "",
var isbn: String
) : Resource()
क्या घटक 1 ??? – maaartinus
कोटलिन स्पष्ट रूप से विधियों 'घटक एन() 'बनाता है जो एन-वें संपत्ति का वापसी मूल्य। [मल्टी-घोषणाओं] पर दस्तावेज़ देखें (http://kotlinlang.org/docs/reference/multi-declarations.html) – Dmitry
गुणों को खोलने के लिए, आप संसाधन सार तत्व भी बना सकते हैं या कंपाइलर प्लगइन का उपयोग कर सकते हैं। कोटलिन खुले/बंद सिद्धांत के बारे में सख्त है। –