groovy789's blog

技術系備忘録φ(..)メモメモ

Groovyで関数インターフェースをクロージャで実装する

関数インターフェースとはjava8で追加されたあれです(´・ω・`)
インターフェースにメソッド定義が1つしかないやつです。
Runnableとかが代表的ですかね~。

goovyでどうやって書けるのかちょっと調べたのでφ(..)メモメモ

[java8]

public class TestRunnable {
    public static void main(String[] args) {
        new Thread(() -> System.out.println("Hello World")).start();
    }
}

[groovy]

class TestRunnable {
    static main(args) {
        new Thread({ println "Hello World" } as Runnable).start()
    }
}


androidでイベントを処理するときにどうやって書いたらいいのかちょっと悩んだので(´・ω・`)

[groovy]

    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(activity)
        builder.title = R.string.dialog_title
        builder.message = R.string.dialog_msg
        // OKボタン
        builder.setPositiveButton(R.string.dialog_positive, { d, w -> println "Ok" } as DialogInterface.OnClickListener)
        // キャンセルボタン
        builder.setNegativeButton(R.string.dialog_negative, { d, w -> println "Cancel" } as DialogInterface.OnClickListener)
        builder.create()
    }

これでまた一歩前進だー(*´ω`*)