groovy方法調用

//類的方法調用 可以用閉包代替接口
class Person{
    def name
    def age

    public def getName() {
        return name + "_lin"
    }

    public void setName(def name) {
        this.name = name
    }

    def execute(x,y,z){
        println "$x $y $z"
    }
}

def person = new Person()
person.name = 'groovy'
def str = 'name'
//調用set(name)的四種方式
println person.name
println person.'name'
println person."$str"
println person['name']
//調用原始name的方式
println person.@name
//直接在創建對象時給name 和 age賦值
def person1 = new Person(age: 12,name: 'name')
println person1.name
//調用其中的方法
person1.execute('a',a:'aa','c')

//字符串分割
def str1 = 'org.codehaus.groovy:groovy-all:2.3.11'
def array = str1.split(':')
def (group,name,version) = str1.split(':')
println array
println group
println name
println version


//接口調用 單個接口
interface OnclickListener{
    void onClick(a,b)
}
def fun(OnclickListener listener){
    listener.onClick('hello','lin')
}
fun(new OnclickListener() {
    @Override
    void onClick(a,b) {
        println "$a , $b"
    }
})
OnclickListener listener = {
    j,i->
        println  "$j , $i"
}
fun listener

//接口有多個方法 但是我們只需要實現一個就好
interface TextWatcher{
    void before()
    void doing()
    void after()
}
TextWatcher watcher = {
        println "hello"
} as TextWatcher
def fun1(TextWatcher watcher){
    watcher.doing()
}
fun1(watcher)
發佈了57 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章