डेटा कक्षाएं जावा में पुराने जमाने के पीओजेओ के प्रतिस्थापन के रूप में प्रतीत होती हैं। यह काफी उम्मीद है कि ये वर्ग विरासत के लिए अनुमति देंगे, लेकिन मैं डेटा वर्ग का विस्तार करने के लिए कोई सुविधाजनक तरीका नहीं देख सकता। मुझे कुछ इस तरह की आवश्यकता है:
open data class Resource (var id: Long = 0, var location: String = "")
data class Book (var isbn: String) : Resource()
component1()
विधियों के टकराव के कारण उपरोक्त कोड विफल हो जाता है । data
केवल एक वर्ग में एनोटेशन छोड़ने से काम नहीं होता है।
शायद डेटा वर्गों का विस्तार करने के लिए एक और मुहावरा है?
UPD: मैं केवल चाइल्ड चाइल्ड क्लास का एनोटेट कर सकता हूं, लेकिन 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()
componentN()
जो एन-वें संपत्ति का मूल्य लौटाते हैं। मल्टी-डिक्लेरेशन