【发布时间】:2015-09-17 05:16:30
【问题描述】:
我的 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。没有更多或更少。在查看 several examples 之后。我试过这样的事情:
alertDialogBuilder.setPositiveButton("Okay", (DialogInterface dialog) -> {
dialog.cancel();
});
还有这些:
alertDialogBuilder.setNegativeButton((DialogInterface) d -> d.cancel());
其中的错误:
Error:(99, 64) 错误:不兼容的类型:DialogInterface 不是功能接口 在接口 DialogInterface 中找到多个非覆盖抽象方法
在这种情况下我应该如何使用 lambda?
【问题讨论】:
-
这个问题你可能会感兴趣:stackoverflow.com/questions/23318109/…
标签: android lambda java-8 android-alertdialog retrolambda