Scala对象在运行时导入

时间:2017-11-15 16:06:10

标签: java scala

所以问题是,是否可以在运行时将Scala对象对象导入为通常的scala类,例如:

trait A
class B extends A
Class.forName("B").newInstance().asInstanceOf[A]

但如果class B变为object B,则无效。 Scala对象还有其他选项吗?

1 个答案:

答案 0 :(得分:-2)

如果B是对象,则以下代码有效:

trait A
object B extends A

val `class` = Class.forName("B$")
val constructor = `class`.getDeclaredConstructors.apply(0)
constructor.setAccessible(true)
constructor.newInstance().asInstanceOf[A]