文字列として指定された Scala シングルトン オブジェクト (package1.Main など) を Main の実際のインスタンスに変換して、メソッドを呼び出せるようにする方法を探しています。
問題の例:
package x {
object Main extends App {
val objectPath: String = io.StdIn.readLine("Give an object: ") // user enters: x.B
// how to convert the objectPath (String) to a variable that references singleton B?
val b1: A = magicallyConvert1(objectPath)
b1.hi()
val b2: B.type = magicallyConvert2(objectPath)
b2.extra()
}
trait A {
def hi() = {}
}
object B extends A {
def extra() = {}
}
}
magiclyConvert1 および magiclyConvert2 関数はどのように実装できますか?