method handles and open packages

Michał Zegan webczat_200 at poczta.onet.pl
Sat Jul 21 19:44:23 UTC 2018


I would also believe that the unreflect methods would work for this case
too if the reflected version had access checks already suppressed.

W dniu 21.07.2018 o 19:27, Remi Forax pisze:
> Hi,
> 
> On July 21, 2018 3:43:51 PM UTC, "Michał Zegan" <webczat_200 at poczta.onet.pl> wrote:
>> Hello,
>> If I use reflection, I can access every member of every package in a
>> module if a module opens such package, and that includes private
>> members.
>> What, however, about using method handles for that purpose?
> 
> https://docs.oracle.com/javase/9/docs/api/java/lang/invoke/MethodHandles.html#privateLookupIn-java.lang.Class-java.lang.invoke.MethodHandles.Lookup-
> 
>> Also, if you have a class in module a that wants to deserialize data to
>> objects of classes in module b, then should module b open a package
>> with
>> those classes to a, or maybe, give the deserializer it's lookup object,
>> in order for it to be able to access members of non exported non opened
>> packages? It is for the case where the deserializer is called by the
>> module b. Also I assume that I do not need access to non public members
>> of classes, like I deserialize using public setters always.
> 
> Rémi
> 
> 
> 


More information about the jigsaw-dev mailing list