creating proxies for interfaces with default methods
Remi Forax
forax at univ-mlv.fr
Thu May 26 12:00:32 UTC 2016
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.
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
----- Mail original -----
> De: "Jochen Theodorou" <blackdrag at gmx.org>
> À: "Alan Bateman" <Alan.Bateman at oracle.com>
> Cc: "jigsaw-dev" <jigsaw-dev at openjdk.java.net>
> Envoyé: Jeudi 26 Mai 2016 09:21:15
> Objet: Re: creating proxies for interfaces with default methods
>
> On 26.05.2016 09:03, Alan Bateman wrote:
> > On 26/05/2016 07:04, Jochen Theodorou wrote:
> >>
> >> you cannot invoke the default method with reflection without
> >> implementation of the interface
> > It sounds like you want to invoke the default method without a receiver.
> > This does seem like sorcery for mlvm-dev.
>
> the problem is, that if I use a dynamic proxy as receiver and reflection
> as invocation method, I will end up in the invocation hadler again.
>
> bye Jochen
>
>
More information about the jigsaw-dev
mailing list