Huh
I've often thought about doing similar.
Two nits:

1.
RT.java is clever, I know ClassValue was probably the way to do things but 
couldn't figure out how to do it. But it's simpler to just write to a 
static field to the class anyway.
One advantage of creating new classloaders over defineHiddenClass is you 
can just pass in the data as part of the classloader.

2.
I wouldn't even bother with a traditional constructor but just use 
MethodHandles to set the delegate field.

Anyway very cool what defineHiddenClass will enable.

On Sunday, April 26, 2020 at 10:31:20 AM UTC-7, Remi Forax wrote:
>
> Shameless plug,
> i've written a simple library that shows how lookup.defineHiddenClass [1] 
> can be used to implement dynamic proxies
>   https://github.com/forax/hidden_proxy
>
> regards,
> Rémi
>
> [1] 
> https://download.java.net/java/early_access/jdk15/docs/api/java.base/java/lang/invoke/MethodHandles.Lookup.html#defineHiddenClass(byte%5B%5D,boolean,java.lang.invoke.MethodHandles.Lookup.ClassOption...)
>
> ------------------------------
>
> *De: *"Dr Heinz M. Kabutz" <[email protected] <javascript:>>
> *À: *"mechanical-sympathy" <[email protected] <javascript:>>
> *Envoyé: *Dimanche 26 Avril 2020 19:11:53
> *Objet: *Re: Best way to dynamically spin Java classes?
>
> In Java 15 we will have hidden classes, which seem like the right model 
> for what you are trying to do. 
>
> On Sun, 26 Apr 2020 at 19:36, Steven Stewart-Gallus <
> [email protected] <javascript:>> wrote:
>
>> I'm spinning a lot of classes dynamically for an interpreter.
>> I'm not sure the best way to load the classes into the VM.
>>
>> Aside from Unsafe's defineAnonymousClass what's the best way to load 
>> classes into the VM?
>>
>> I believe I could create a new classloader for each spun class but IIRC 
>> classloaders are expensive.
>>
>> I believe as much as possible I'd want to reuse MethodHandle and 
>> LambdaMetafactory to rely on the JVMs use of defineAnonymousClass.
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "mechanical-sympathy" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To view this discussion on the web, visit 
>> https://groups.google.com/d/msgid/mechanical-sympathy/8ded7316-7675-4747-afe5-5150a7b6009e%40googlegroups.com
>> .
>>
> -- 
> Dr Heinz M. Kabutz (PhD CompSci)
> Author of "The Java(tm) Specialists' Newsletter"
> Sun/Oracle Java Champion
> JavaOne Rockstar Speaker
> http://www.javaspecialists.eu
> Tel: +30 69 75 595 262
> Skype: kabutz
>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "mechanical-sympathy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] <javascript:>.
> To view this discussion on the web, visit 
> https://groups.google.com/d/msgid/mechanical-sympathy/CACLL95rS-FtOi2511BqezhszD2ejxPp9BPUBFNUOnNNFndco_Q%40mail.gmail.com
>  
> <https://groups.google.com/d/msgid/mechanical-sympathy/CACLL95rS-FtOi2511BqezhszD2ejxPp9BPUBFNUOnNNFndco_Q%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"mechanical-sympathy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/mechanical-sympathy/b14b88e4-3a30-447d-a29b-ca7ce7fe738d%40googlegroups.com.

Reply via email to