假设我有 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?
谢谢。