creating proxies for interfaces with default methods

Jochen Theodorou blackdrag at gmx.org
Fri May 27 05:28:58 UTC 2016


On 26.05.2016 14:00, Remi Forax wrote:
> Not if you use Lookup.findSpecial() [1]
> Anyway, you can not use it because you can not get the Lookup object associated with the proxy class.

which is why I did this:

>       MethodHandles.Lookup.class.getDeclaredConstructor(Class.class, int.class).
>       newInstance(interfaceClass, MethodHandles.Lookup.PRIVATE).
>       unreflectSpecial(method, interfaceClass).
>       bindTo(receiver);

but that is not working anymore.

> That's why i've written the Proxy2 library [2].
>
> so the solutions are either you use the Proxy2 library (which doesn't work with jdk9 yet) or we retrofit the interface InvocationHandler to take a supplementary Lookup object.
> regards,
> Rémi
>
> [1] http://docs.oracle.com/javase/7/docs/api/java/lang/invoke/MethodHandles.Lookup.html#findSpecial%28java.lang.Class,%20java.lang.String,%20java.lang.invoke.MethodType,%20java.lang.Class%29
> [2] https://github.com/forax/proxy2

what is the problem under jdk9?

bye Jochen



More information about the jigsaw-dev mailing list