2009-05-11 3 views
0

의 형식 매개 변수와지도 작성하는 방법 :나는 이런 식으로 뭔가를 할 노력하고있어 클래스

import scala.swing 

class componentMapper { 

    val map = Map[Class[_], Componenet]() 

    def apply(c: Class[_], component: Component) = map += (c -> componenet) 

} 

class Render extends ComponentMapper { 

    def getRenderer(value: AnyRef) = map(value.getClass) 

} 

이 작동하지 않는 것입니다. 클래스에 어떤 형식 매개 변수를 사용해야합니까?

+0

나는 스칼라를 사용한 적이 없지만 JVM에서 실행된다는 것을 알고 있습니다 ... 인터페이스가 아닌 클래스를 매핑합니까? 대신 HashMap을 사용해보십시오. – Powerlord

+0

스칼라에는 내장 맵이 있습니다. 위의 Map [...]()은 정적 팩터 리 메소드와 같습니다. – Brian

답변

3

핵심 문제가 무엇인지는 확실하지 않지만 클래스의 유형 매개 변수는 아닙니다. "->"는 이상한 형식 추론 문제인 것처럼 보입니다. 다음은 잘 컴파일되고 작동합니다.

import scala.swing._ 

class ComponentMapper { 
    var map = Map[Class[_], Component]() 
    def apply(c: Class[_], component: Component) = map += ((c, component)) 
} 

class Render extends ComponentMapper { 
    def getRenderer(value: AnyRef) = map(value.getClass) 
} 

내가 말한 문제를 찾기 위해 코드에 많은 수정을해야했습니다.

나는 고칠 수있는 희망이있는 티켓을 신청했다 : https://lampsvn.epfl.ch/trac/scala/ticket/1974.

+0

훌륭합니다. 감사. – Brian

관련 문제