【发布时间】:2019-09-21 19:04:36
【问题描述】:
我试图了解反射如何与委托一起工作,并且我想出了一个玩具示例。
class Foo(val m: MutableList<Any>) : MutableList<Any> by m{
}
fun fooAdd(f: Foo) {
val a = f::class.java.getMethod("add").invoke(f, 20);
println(a)
}
fun main(args: Array<String>) {
fooAdd(Foo(mutableListOf()))
}
这给了我一个错误:
Exception in thread "main" java.lang.NoSuchMethodException: Foo.add()
我不确定我理解为什么会这样,如果我理解正确的话,add() 会从 MutableList 委托给 Foo。
如何解决此错误?另外,是否有一个图书馆应该用于这样的用例?
【问题讨论】:
标签: kotlin reflection delegation