方法抛出';java.lang.IllegalArgumentException';例外。无法计算$Proxy0.toString()

方法抛出';java.lang.IllegalArgumentException';例外。无法计算$Proxy0.toString(),java,android,kotlin,reflection,Java,Android,Kotlin,Reflection,我正在尝试使用以下代码使用反射加载接口: val clazz : Class<Client> = Client::class.java val classLoader = clazz.classLoader val invocationHandler = ProviderInvocationHandler() Proxy.newProxyInstance(classLoader, arrayOf(clazz), invocationHandler) 和我的调用处理程序: priv

我正在尝试使用以下代码使用反射加载接口:

val clazz : Class<Client> = Client::class.java
val classLoader = clazz.classLoader
val invocationHandler = ProviderInvocationHandler()

Proxy.newProxyInstance(classLoader, arrayOf(clazz), invocationHandler)
和我的调用处理程序:

private class ProviderInvocationHandler : InvocationHandler {

    override fun invoke(proxy: Any?, method: Method?, args: Array<out Any>?): Any {
        Log.d("Reflection", "Invocation handler")

        return method!!.invoke(proxy, args)
    }
}
私有类ProviderInvocationHandler:InvocationHandler{
覆盖有趣的调用(代理:Any?、方法:method?、参数:Array?):Any{
Log.d(“反射”、“调用处理程序”)
返回方法!!.invoke(代理,参数)
}
}
当我执行此代码时,不会追加任何内容,并且从处理程序方法调用的
invoke
永远不会被调用。但是,如果我在变量中指定
Proxy.newProxyInstance
的值,在我的调试器中我会看到:
方法抛出了“java.lang.IllegalArgumentException”异常。无法计算$Proxy0.toString()


不理解为什么会引发此异常

可能重复,可能您不想在代理上调用该方法,而是在实际目标对象本身上?可能重复,可能您不想在代理上调用该方法,而是在实际目标对象本身上?
private class ProviderInvocationHandler : InvocationHandler {

    override fun invoke(proxy: Any?, method: Method?, args: Array<out Any>?): Any {
        Log.d("Reflection", "Invocation handler")

        return method!!.invoke(proxy, args)
    }
}