मैं वर्तमान में स्कैला सीख रहा हूं।
इस कोड को क्यों काम नहीं करता:स्कैला जेनरिक - मैं जेनेरिक क्लास के अंदर पैरामीट्रिज्ड ऑब्जेक्ट क्यों नहीं बना सकता?
class GenClass[T](var d : T) {
var elems: List[T] = Nil
def dosom(x: T) = {
var y = new T()
y
}
}
मैं: त्रुटि: वर्ग प्रकार की आवश्यकता है, लेकिन टी
वर y के स्थान पर पाया - नई टी()
है ऐसा इसलिए क्योंकि जावा से मिटाना टाइप करें? क्या इसे हल करने का कोई तरीका है - जेनेरिक फ़ंक्शन के अंदर प्रकार टी का चर बनाओ?
यूप। यह जावा जड़ों से एक प्रतिबंध है। मैं आमतौर पर "कन्स्ट्रक्टर फ़ंक्शन" का उपयोग करता हूं (उदाहरण के लिए सीटीओआर तर्क के रूप में पारित), उदा। '() => टी', लेकिन कुछ और तरीके से निफ्टी तरीके हो सकते हैं। –
हां - मेरे लिए यह समाधान पर्याप्त और सरल दिखता है। –
संभावित डुप्लिकेट [स्कैला में टाइप पैरामीटर द्वारा प्रतिनिधित्व प्रकार के उदाहरण को तत्काल कैसे करें] (http://stackoverflow.com/questions/1305563/how-to-instantiate-an-instance-of-type-represented-by- टाइप-पैरामीटर-इन-स्कैला) –