私はこれらで設定された私のAndroidスタジオを持っています:
classpath "me.tatarka:gradle-retrolambda:3.2.2"
classpath 'me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2'
そして、ラムダを使用して、何ができるかできないかを調べようとしています。
次のコードを実行したとき:
alertDialogBuilder.setPositiveButton("Okay", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
IDEnew DialogInterface.OnClickListener()
は、ラムダに置き換えることができるというメッセージをグレー表示しました。多かれ少なかれ何もありません。いくつかの 例を調べた後。私は次のようなことを試しました:
alertDialogBuilder.setPositiveButton("Okay", (DialogInterface dialog) -> {
dialog.cancel();
});
これらも:
alertDialogBuilder.setNegativeButton((DialogInterface) d -> d.cancel());
エラーの中で:
エラー:(99, 64) エラー: 型に互換性がありません: DialogInterface は機能的なインターフェイスではありません オーバーライドしていない複数の抽象メソッドがインターフェイス DialogInterface に見つかりました
この場合、ラムダをどのように使用すればよいですか?