Метод вызвал исключение «java.lang.IllegalArgumentException».Не удается оценить $ Proxy0.toString () - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь загрузить интерфейс, используя отражение с этим кодом:

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

Proxy.newProxyInstance(classLoader, arrayOf(clazz), invocationHandler)

Вот мой интерфейс клиента:

interface Client {
    fun getCustomer(id: String)
}

И мой обработчик вызова:

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)
    }
}

Ничего не добавляется, когда я выполняю этот код, и invoke из метода-обработчика никогда не вызывается.Но если я присваиваю значение Proxy.newProxyInstance в переменной, в моем отладчике я вижу это: Method threw 'java.lang.IllegalArgumentException' exception. Cannot evaluate $Proxy0.toString()

Не понимаю, почему возникает это исключение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...