Rachel, Paul, thanks a lot!
Pity not even today's Java supports something like Objective-C runtime support for managing the methods in a class :( Anyway, I might try to create my (sub)classes dynamically at runtime — this is an idea which did not occur to me before; and although I can see some hurdles (for one, the classes which I need most to support dynamic methods/properties are database classes; and the source from which I read in the information of dynamic methods is... the very database; I'll have to find some trick here), it looks pretty promising. Thanks again and all the best, OC > On 27 Aug 2021, at 1:13, Paul King <pa...@asert.com.au> wrote: > > As Rachel said, methods/properties added via runtime metaprogramming will > only be visible to Groovy's reflection capabilities. Some frameworks have > moved to using compile-time metaprogramming (AST transforms, macros/macros > methods) or traits so that added features will be visible also to Java. > > Cheers, Paul. > > On Fri, Aug 27, 2021 at 12:34 AM o...@ocs.cz <mailto:o...@ocs.cz> > <o...@ocs.cz <mailto:o...@ocs.cz>> wrote: > Rachel, > > yes, I use the metaclass stuff heavily; but I am often bumping into problems > with library code which accesses attributes of my classes through reflexion > (and due to that, does not see my dynamically installed accessors etc). > > I know the Javas of old did not support that; but I sort of hoped today's one > just might. Today's Groovy just might not exploit it normally due to the > backward compatibility with the metaclass stuff which used to be the only way > to get runtime metaprogramming originally, when Groovy has been created. > > Looks like bad luck :( > > Thanks, > OC > >> On 26. 8. 2021, at 15:43, Rachel Greenham <rac...@merus.eu >> <mailto:rac...@merus.eu>> wrote: >> >> Through java.lang.reflect? I'd guess not as that would involve actually >> changing the bytecode of a loaded class at runtime to add methods... It's >> just not a JVM thing, I think - if it was, at least by any official means, >> Groovy would probably have been written to use it instead of all the stuff >> it does with metaclasses. >> >> But if you're all in groovy, you can add methods dynamically using expando i >> think and then they're findable through *Groovy's* metaclass apis... but no, >> they won't be findable/reflectable by Java code. >> >> -- >> Rachel Greenham >> rac...@merus.eu <mailto:rac...@merus.eu> >> >>> On 26 Aug 2021, at 14:35, o...@ocs.cz <mailto:o...@ocs.cz> wrote: >>> >>> Hi there, >>> >>> the subject says it all. I've asked this long time ago (and got a negative >>> answer then), but meantime there's Groovy 3. >>> >>> Is there now a way to do that? >>> >>> Most important it would be with my own class (subclass of a library class), >>> if it helps to find a solution. >>> >>> Thanks, >>> OC >>> >> >