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