class AGroovyClass {}objA = new AGroovyClass() // 實(shí)例對(duì)象AobjB = new AGroovyClass() // 實(shí)例對(duì)象BobjA.metaClass.add = {val1, val2 -> val1 + val2 }println objA.add(11, 13)try { objB.add(11, 13) // B中未注入方法,報(bào)錯(cuò)} catch (ex) { println "error"}3、metaClass分組。class AGroovyClass {}obj = new AGroovyClass()obj.metaClass { add = { -> "In add function" } del = { -> "In del function" }}println obj.add() // In add functionprintln obj.del() // In del function4、設(shè)置metaClass為null時(shí),僅僅會(huì)影響metaClass中添加的方法,類方法不受影響。class AGroovyClass { def add() { "In add function" }}obj = new AGroovyClass()obj.metaClass { del = { -> "In del function" }}println obj.del() // In del functionobj.metaClass = nullprintln obj.add() // In add functiontry { println obj.del()} catch(ex) { println "error" // error}返回In del functionIn add functionerror
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注