【发布时间】:2015-11-29 23:52:17
【问题描述】:
我正在尝试使用 retrolambda 在 Android 上使用 lambda 表达式。在下面的代码中,我需要添加作为接口的侦听器:
public interface LoginUserInterface {
void onLoginSuccess(LoginResponseEntity login);
void onLoginFail(ServerResponse sr);
}
代码
private void makeLoginRequest(LoginRequestEntity loginRequestEntity) {
new LoginUserService(loginRequestEntity)
.setListener(
login -> loginSuccess(login),
sr -> loginFail(sr))
.execute();
}
private void loginSuccess(LoginResponseEntity login) {
//TODO loginSuccess
}
private void loginFail(ServerResponse sr) {
//TODO loginFail
}
但 Android Studio 将红色的 loginSuccess(login) 和 loginFail(sr) 标记为错误
并显示消息“LoginResponseEntity 无法应用于 ”和“ServerResponse 无法应用于 ”
所以我不能将 lambda 参数 'login' 设置为方法 loginSuccess(login) 的参数。
请帮助我理解这个表达式有什么问题。
【问题讨论】:
-
Android 使用 Java 6 编译。Java 6 中没有 lambda。
-
我知道,我使用 retrolambda 和其他 lambda 表达式工作
-
你应该在你的问题中提到这一点。
-
如果你想在android上使用lambda表达式:zserge.com/blog/android-lambda.html
标签: java android lambda retrolambda