invoking a interface default method from within an InvocationHandler

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Thu Oct 9 14:51:43 UTC 2014


Jochen,

> too bad no-one knows. Has anyone an idea for a better place to ask this?
> (btw, because of the getSimpleName issue I can't use MethodHandleProxies)
FYI, I plan to get MethodType.toString() problem fixed in 8u40.

Best regards,
Vladimir Ivanov

>
> Am 06.10.2014 18:06, schrieb Jochen Theodorou:
>> Hi,
>>
>> I find this a little odd and I wonder how you are supposed to do it
>> right. Or if that is a bug.
>>
>> So I have a class implementing InvocationHandler and I used Proxy to
>> create a an proxied instance of Consumer. This is a functional interface
>> and I want to use its accept method for my purposes, while still keeping
>> the old andThen method as it is.
>>
>> going by the usual signature for the InvocationHandler implementation
>> main method (public Object invoke(Object proxy, Method method, Object[]
>> args) throws Throwable)
>>
>> I can do neither method.invoke on this, since that leads to that method
>> (overflow then) again, nor can I take the proxy object, since it
>> obviously has nothing to do with functional interface.
>>
>> Now... is that really on purpose? Are you indeed forced to split up your
>> code into a java7+ and pre java7 case to be able to use
>> MethodHandleProxies#asInterfaceInstance where it is available instead?
>> Shouldn't Proxy and InvocationHandler then be marked deprecated in
>> Java8? And how do you use MethodHandleProxies to implement multiple
>> interfaces?
>>
>> bye Jochen
>>
>
>


More information about the mlvm-dev mailing list