我想在scala中使用反射来调用对象main方法。但它没有用,下面两行代码将通过异常我无法使用反射创建对象。
val clazz = Class.forName(job.runnerClass)
val runnerClass = clazz.newInstance()
答案 0 :(得分:2)
首先,你在类名的末尾使用$,因为scala对象总是以$结尾。 然后,您可以在名为MODULE $
的字段中找到对象实例val class = Class.forName(name)
val objectInstance = class.getField("MODULE$").get(class).asInstanceOf[YOURCLASSTYPE]