我的 Android 工作室设置了这些:
classpath "me.tatarka:gradle-retrolambda:3.2.2"
classpath 'me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2'
我正在尝试使用 lambdas 来知道我能做什么。
当我执行以下代码时:
alertDialogBuilder.setPositiveButton("Okay", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
IDE 显示灰色,new DialogInterface.OnClickListener()
告诉我它可以用 lambda 替换。没有更多或更少。在研究了几个 例子之后。我试过这样的事情:
alertDialogBuilder.setPositiveButton("Okay", (DialogInterface dialog) -> {
dialog.cancel();
});
还有这些:
alertDialogBuilder.setNegativeButton((DialogInterface) d -> d.cancel());
其中的错误:
错误:(99, 64) 错误:不兼容的类型:DialogInterface 不是功能接口,在接口 DialogInterface 中找到多个非覆盖抽象方法
在这种情况下我应该如何使用 lambda?