鉴于以下内容:
package com
object Foo {
trait Parent
case object Boy extends Parent
}
如何制作类型的方法:String -> Option[Foo.Parent]
?
我尝试了以下尝试失败:
scala> import com._
import com._
scala> Class.forName("com.Foo$")
res0: Class[_] = class com.Foo$
scala> Class.forName("com.Foo.Boy$")
java.lang.ClassNotFoundException: com.Foo.Boy$
我引用了这个answer,因为它指出了我正确的方向。
答案 0 :(得分:3)
我相信你想要:
val classVal=Class.forName("com.Foo$Boy")
要实例化:
val constructer=classVal.getDeclaredConstructor()
constructer.setAccessible(true)
val instance constructer.newInstance()