मैं एक विशेषता के अंदर एक covariant प्रकार पैरामीटर का उपयोग करें ताकि तरह के मामले स्तरीय निर्माण करने के लिए कोशिश कर रहा हूँ:contravariant स्थिति में पैरामीटर क्यों है?
trait MyTrait[+T] {
private case class MyClass(c: T)
}
संकलक का कहना है:
error: covariant type T occurs in contravariant position in type T of value c
मैं तो कोशिश की निम्नलिखित लेकिन यह भी नहीं था 'टी काम:
trait MyTrait[+T] {
private case class MyClass[U <: T](c: U)
}
त्रुटि इस समय है:
error: covariant type T occurs in contravariant position in type >: Nothing <: T of type U
क्या कोई यह समझा सकता है कि टी यहां एक सहकारी स्थिति क्यों है और इस समस्या का समाधान सुझाता है? Thx!
क्या आप समझा सकते हैं कि आप वास्तव में क्या करना चाहते हैं? आप टी covariant क्यों नहीं चाहते हैं और invariant नहीं? –