Lo que intento hacer es crear una función que tome una clase genérica y use un método estático (lo siento por el lenguaje Java, me refiero al método de su objeto complementario)Obtener el objeto compañero de la clase por tipo genérico dado. Scala
trait Worker {def doSth: Unit}
class Base
object Base extends Worker
// this actually wouldn't work, just to show what I'm trying to achieve
def callSthStatic[T that companion object is <: Worker](implicit m: Manifest[T]) {
// here I want to call T.doSth (on T object)
m.getMagicallyCompanionObject.doSth
}
¿Alguna idea?
Agregué el contenido real de Gist - el Gist podría desaparecer y el enlace solo califica como un comentario. –
obtengo "error: método dependiente ilegal tipo implicit def companion [T] (implicit comp: Companion [T]) = comp.apply()" at line "implicit imp companion [T] (implicit comp: Companion [ T]) = comp() "con scala 2.9.1. ¿Lo estoy haciendo mal? :-) –
Añadiré entre paréntesis que si el tipo 'Foo' es visible, entonces también lo es su objeto complementario, así que aunque parece bastante ingenioso, no creo que sea útil en la práctica. –