class Helper { def work() { PRintln "$name is working" }}@Mixin(Helper)class AGroovyClass { def getName() { "AGroovyClass" }}new AGroovyClass().work() // AGroovyClass is working2、调用类的Mixin方法。class Helper { def work() { println "$name is working" }}class AGroovyClass { def getName() { "AGroovyClass" }}AGroovyClass.mixin Helpernew AGroovyClass().work() // AGroovyClass is working3、在类的metaClass中调用mixin方法。class Helper { def work() { println "$name is working" }}class AGroovyClass { def getName() { "AGroovyClass" }}AGroovyClass.metaClass.mixin Helpernew AGroovyClass().work() // AGroovyClass is working4、多个类mixin。class Helper { def work() { println "$name is working" }}class Num { def add(val1, val2) { println val1 + val2 }}class AGroovyClass { def getName() { "AGroovyClass" }}AGroovyClass.mixin HelperAGroovyClass.mixin Num// AGroovyClass.metaClass.mixin Helper// AGroovyClass.metaClass.mixin Numnew AGroovyClass().work() // AGroovyClass is workingnew AGroovyClass().add(11, 12) // 23
新闻热点
疑难解答