у меня
trait T
class C extends T
скомпилировано в файлы .class. Запустите scala с -cp <...>
, чтобы получить тип T
. Затем загрузите класс C, используя отражение:
val loader = ScalaClassLoader fromURLs (/* List[URL] */)
val anyC = loader.tryToInitializeClass("C") getOrElse (/* throw something */)
val classC = anyC.asInstanceOf[Class[T]]
Как я могу привести classC.newInstance
к типу T
, как
val objC = classC.newInstance.asInstanceOf[T]
// yields java.lang.ClassCastException: C cannot be cast to T