Groovy 的 respondsTo()方法

Groovy
于泽  •  1528899002
Groovy 的 respondsTo()方法
Groovy 的 respondsTo()方法

当Groovy方法中引入动态类型参数时,最好使用respondsTo()方法判断实际传入的对象是否实现了被调用的方法,以免运行时出错。

示例:

def takeHelpAndReward(helper){
    helper.helpMoveThings()
    if(helper.metaClass.respondsTo(helper, 'eatSugarcane')){
        helper.eatSugarcane()
    }
    
}

class Man{
    void helpMoveThings(){
        println "Man's helping"
    }
}

class Woman{
    void helpMoveThings(){
        println "Woman's helping"
    }
}

class Elephant{
    void helpMoveThings(){
        println "elephant's helping"
    }
    void eatSugarcane(){
        println "elephant eat sugarcane"
    }
}

takeHelpAndReward(new Man())
takeHelpAndReward(new Woman())
takeHelpAndReward(new Elephant())

运行结果:

Man's helping
Woman's helping
elephant's helping
elephant eat sugarcane