मेरे पास एक नक्शा है जहां दोनों कुंजी और मान सामान्य प्रकार हैं। कुछ इस तरह:पैरामीटरयुक्त प्रकारों से संबंधित
Map[Foo[A], Bar[A]]
क्या मैं व्यक्त करना चाहते हैं उस प्रकार A
नक्शे में प्रत्येक कुंजी-मान पेयर के लिए अलग अलग हो सकता है, लेकिन हर कुंजी हमेशा मूल्य के रूप में एक ही प्रकार के साथ पैरामिट्रीकृत है कि यह नक्शा है। तो Foo[Int]
हमेशा Bar[Int]
पर नक्शा करता है, Foo[String]
हमेशा Bar[String]
पर नक्शा करता है, और आगे भी।
क्या कोई इसे व्यक्त करने का तरीका जानता है?
संपादित करें:
यहाँ बात की तरह मैं ऐसा करने की कोशिश कर रहा हूँ एक उदाहरण है:
trait Parameter // not important what it actually does
class Example {
val handlers: Map[_ <: Parameter, (_ <: Parameter) => _] = Map()
def doSomething() {
for ((value, handler) <- handlers) {
handler(value)
}
}
}
विचार यह है कि एक मूल्य हमेशा एक समारोह है कि इसे स्वीकार कर सकते करने के लिए नक्शे होगा एक पैरामीटर के रूप में, लेकिन जैसा कि कोड अब लिखा गया है, संकलक इसे नहीं जान सकता है।
वह पंक्ति स्वयं संकलित नहीं होती है, स्कैला को उन प्रकारों को कहीं से चुनने की आवश्यकता होती है (या तो कक्षा या विधि प्रकार एनोटेशन, या एक अमूर्त प्रकार) क्या आप हमें दिखा सकते हैं कोड? –
यह http://stackoverflow.com/questions/7401329/map-from-classtto-t-without-casting – michid