Ich habe ein Groovy-Metaprogrammierungsproblem festgestellt, das ich nicht lösen kann.
Beim Hinzufügen der statischen Methode foo () zur Klasse FooBar funktioniert FooBar.foo () wie erwartet:
%Vor%Allerdings füge ich stattdessen die gleiche statische Methode foo () zum Klassenobjekt hinzu, dann schlägt FooBar.foo () mit einer MissingMethodException fehl:
%Vor% Warum ist das? Sollte nicht Object.metaClass.static.foo = { .. }
foo () auch zu FooBar hinzufügen?
Um das von Ihnen gesuchte Verhalten zu erhalten, müssen Sie ExpandoMetaClass.enableGlobally ()
aufrufenDenken Sie daran, dass dies einen größeren Speicherbedarf hat als die normale Meta-Programmierung.
Tags und Links grails groovy metaprogramming