ऊपर समाधान में से कोई भी अच्छा कर रहे हैं, क्योंकि वे काम करते हैं लेकिन हो सकता है त्रुटियों का कारण।
Kotlin के Data Class डिफ़ॉल्ट निर्माता का उपयोग कर कई तरीके उत्पन्न करता है। इसका मतलब है कि equals(), hashCode(), toString(), componentN() functions और copy() आपके कन्स्ट्रक्टर को असाइन किए गए गुणों का उपयोग करके जेनरेट किया गया है।
ऊपर समाधान का उपयोग
तरह
@Entity data class Site(@PrimaryKey(autoGenerate = true) var id: Long) {
@Ignore constructor() : this(0)
var name: String = ""
var url: String = ""
}
केवल आईडी के लिए ऊपर दिए गए सभी तरीकों उत्पन्न करता है। बराबर का उपयोग करना अवांछित गुणवत्ता की ओर जाता है, जैसा कि toString() के समान होता है। इस को हल करना सभी विशेषताओं के निर्माता के अंदर की प्रक्रिया और तरह
@Entity data class Site(
@NonNull @PrimaryKey(autoGenerate = true) var id: Long,
var name: String = "",
var url: String = "") {
@Ignore constructor(id = 0, name = ", url = "") : this()
}
उपेक्षा आप वास्तव में ध्यान में रखना चाहिए, कि आप आमतौर पर डेटा वर्गों का उपयोग toString और नकल की तरह तरीकों के लिए एक दूसरे निर्माता का उपयोग कर जोड़ना चाहते हैं करने की आवश्यकता है । केवल यह समाधान रनटाइम के दौरान अवांछित बग से बचने के लिए काम कर रहा है।
स्रोत
2017-10-02 13:54:43
क्या हम इस डेटा क्लास के लिए माध्यमिक कन्स्ट्रक्टर बना सकते हैं? –
आप एमानुएल जवाब https://stackoverflow.com/a/46526911/3005202 कोशिश कर सकते हैं –