Groovy Goodness: Apply Mixin to Object Instances
Join the DZone community and get the full member experience.
Join For FreeIn Groovy we can add extra functionality to a class with so-called mixins. In the previous blog post
we added extra functionality to a class, but we can also apply run-time
mixins to an object instance. The syntax is slightly different, because
we must use the mixin()
method on the metaClass
property of the object.
class Parrot { static String speak(Message text) { /"$text" Polly wants a cracker!/ } } // Runtime mixin on String object instead of class. String s = 'Groovy is Gr8' s.metaClass.mixin Parrot assert s.speak() == '"Groovy is Gr8" Polly wants a cracker!' String other = 'Groovy and Grails' try { other.speak() } catch (MissingMethodException e) { assert e.message.startsWith('No signature of method: java.lang.String.speak() is applicable for argument types: () values: []') }
Published at DZone with permission of Hubert Klein Ikkink, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Trending
-
Stack in Data Structures
-
Opportunities for Growth: Continuous Delivery and Continuous Deployment for Testers
-
Personalized Code Searches Using OpenGrok
-
Auditing Tools for Kubernetes
Comments