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
新聞熱點
疑難解答