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() }
これでまた一歩前進だー(*´ω`*)