키와 값이 모두 제네릭 유형 인지도가 있습니다. 이런 식으로 뭔가가 :관련 매개 변수화 된 유형
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