क्या यह सख्ती से वरीयता का मामला है, या क्या एक विधि को दूसरे पर उपयोग करने का कोई कारण है?

डिफ़ॉल्ट मान

@Entity
data class Folder(
        @PrimaryKey
        val id: String = UUID.randomUUID().toString(),
        val parentId: String?,
        val title: String?,
        val pinned: Boolean = false
)

// usage
Folder(parentId = null, title = "Folder")

सेकेंडरी कंस्ट्रक्टर

@Entity
data class Folder(
        @PrimaryKey
        val id: String,
        val parentId: String?,
        val title: String?,
        val pinned: Boolean
) {
    @Ignore
    constructor(parentId: String?, title: String?) : this(
            UUID.randomUUID().toString(), parentId, title, false
    )
}

// usage
Folder(null, "Folder")

मुझे माफ़ कर दो अगर यह एक मामूली सवाल है, मैं बस सड़क के नीचे किसी भी हिचकी से बचने की कोशिश कर रहा हूं क्योंकि मैंने अभी तक कोटलिन या रूम के साथ कोई ऐप नहीं भेजा है .. और ऐप लाइव होने के बाद मैं किसी भी डेटा से संबंधित मुद्दों से बचना चाहता हूं .

1
user11566289 15 जुलाई 2019, 15:47

1 उत्तर

सबसे बढ़िया उत्तर

यदि आप मुहावरेदार कोटलिन पर कोड लिखना चाहते हैं तो आपको "डिफ़ॉल्ट मान" के साथ समाधान का उपयोग करना चाहिए। "नामित तर्क" का भी उपयोग करें:

println(Folder(parentId = 100, title = "anything"))

साथ ही, यदि आप चाहते हैं कि कक्ष संस्थाओं को स्वचालित आईडी असाइन करे, तो आप @PrimaryKey autoGenerate गुण सेट कर सकते हैं।

0
tim4dev 15 जुलाई 2019, 17:58