2つのクラスがあるとしましょう:
class A {
def sayHello(name: String) {
println("Hi " + name)
}
}
class B {
var methodMaps = Map[String, String => Unit]()
def registerMethod(methodName: String, method: String => Unit) {
methodMaps += (methodName -> method)
}
}
さて、通常、私は次のようなものを呼び出します:
val b = new B
val a = new A
b.registerMethod("sayHello", a.sayHello)
しかし今、情報を構成ファイルに入れたいと思います。たとえば、次のようになります。
<method class="A" name="sayHello" />
さて、コードでは次のようにする必要があります。
val b = new B
val className = readFromConfig()
val methodName = readFromConfig()
val aInstance = createInstanceFromReflection(className)
b.registerMethod(methodName, ...)
問題は、a.sayHello を registerMethod に渡す方法がわからないことです。sayHello の MethodMirror を取得できますが、それを registerMethod に渡すにはどうすればよいですか?
ありがとう。