मैं है कोड:त्रुटि
class A {
override def toString = "object class A"
}
class B extends A {
override def toString = "object class B"
}
class Cell[+T](init: T) {
private[this] var current: T = init
def get: T = current
def set(x: T) { current = x }
}
val cB = new Cell[B](new B)
println(cB.get)
val cA: Cell[A] = cB
println(cA.get)
लेकिन मैं लाइन में त्रुटि है: def set(x: T) { current = x }
error: covariant type T occurs in contravariant position in type T of value x def set(x: T) { current = x }
के बारे में बताएं, कृपया
व्यावहारिक जवाब के अलावा, तुम क्यों स्पष्ट निजी संदर्भ और गेटर/सेटर की आवश्यकता है:
एक लंबे समय तक, और अधिक औपचारिक/व्यापक जवाब के लिए, इस सवाल देखते हैं? स्कैला आपके लिए यह करता है: 'कक्षा सेल [+ टी] (वैल टी: टी) {...} ' –