स्काला में,क्यों प्राचीन प्रकार के हैं जैसे कि Intala में ऑब्जेक्ट को मिटा दिया गया है?
{ x: Option[Int] => x }
.getClass
.getMethod("apply", classOf[Option[_]])
.getGenericParameterTypes
रिटर्न Array(scala.Option<java.lang.Object>)
। मैं शुरुआत में Array(scala.Option<scala.Int>)
को देखने की उम्मीद कर रहा था, लेकिन मुझे लगता है कि scala.Int
एक मूल्य वर्ग (AnyVal
बढ़ाता है) 'जिसका उदाहरण अंतर्निहित मेजबान सिस्टम द्वारा ऑब्जेक्ट्स के रूप में नहीं दर्शाया जाता है।'
मुझे अभी भी Object
के क्षरण को समझ में नहीं आता है। क्या यह अधिक उपयोगी java.lang.Integer
नहीं हो सकता है?
वह स्कैला ऐसा नहीं कर रहा है - यह जावा है। गैर-ऑब्जेक्ट में उपयोगी होने के लिए, "जेनेरिक पैरामीटर टाइप्स" (जावा क्लास ऑब्जेक्ट की एक विधि) के परिणाम, एक सबक्लास को बनाना होगा। स्काला * 'विकल्प [Int]' के लिए 'OptionInt' कहें, सबक्लास बनाएं नहीं। (देखें @ विशेषीकृत, शायद?) –
@pst; मुझे लगता है कि आप गलत रास्ते पर हैं। उपरोक्त 'प्रतीक' को 'प्रतीक' में बदलें और आपको 'ऐरे (स्कैला.ऑप्शन <स्कैला। सिंबल>)' प्राप्त करें। –
हम्म, अच्छी तरह से मेरी परिकल्पना है: -/मैं कंपाइलर जादू दोष। –