I'm trying to build something like a class registry in Scala where I can grab a class object from a key. The point is that I want to ensure my classes to inherit from a common trait.
Something like that :
trait GenericTrait{
def doSomethingCool()
}
trait AbstractRegistry {
def registry[T <: GenericTrait]:Map[String, Class[T]]
}
class Object1 extends GenericTrait{
override def doSomethingCool()= println("hello")
}
class Object2 extends GenericTrait{
override def doSomethingCool()=println("hi")
}
object MyClassRegistry extends AbstractRegistry {
override def registry[T <: GenericTrait]:Map[String, Class[T]]=Map(
"obj1" -> classOf[Object1],
"obj2" -> classOf[Object2]
)
}
But it looks like I missed something because it doesn't compile... Any ideas ?
Aucun commentaire:
Enregistrer un commentaire