मैं अनन्य मानों को सेट करने के साथ प्रयोग कर रहा था और काम करने के लिए निम्नलिखित प्राप्त करने का प्रयास कर रहा था। यह ज्यादातर संशोधित जेनरिक की शक्ति (और सीमाओं) में जिज्ञासा है।कोटलिन संशोधित प्रकार पैरामीटर स्मार्ट कास्ट नहीं है
मैं डेटा कक्षाओं के वैकल्पिक मानकों के लिए डिफ़ॉल्ट मान प्रदान करने का प्रयास कर रहा था।
inline fun <reified T> uninitialized(): T = when (T::class) {
Long::class -> -1L // Type mismatch. Required: T Found: Long
String::class -> "" // Type mismatch. Required: T Found: String
// and so on...
else -> throw UnsupportedOperationException("No uninitialized value defined for " + T::class)
}
data class Thing(
var id: Long = uninitialized(),
var name: String = uninitialized() // and so on...
)
जब when
is Type
खंड भी शामिल है, Kotlin स्मार्ट कास्टिंग है। इस उदाहरण में, स्मार्ट कास्टिंग में लात नहीं है इसलिए यह संकलित नहीं होगा।
कुछ ऐसा करने के लिए कोई विचार समान है?
'T' पूरे' करने के लिए लागू किया जा सकता के रूप में when' 'के अंत में अनियमित ' – voddan