在Java 8 SE中使用OnCompleteListerner时出现错误 新的匿名OnCompleteListener()可以替换为lambda less ...(Ctrl + F1) 检查信息:此检查报告所有可以用lambda表达式替换的匿名类 Java 1.7或更早版本的JVM不支持Lambda语法。
mAuth.createUserWithEmailAndPassword(email1, pass ).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful())
{
currentuser=FirebaseAuth.getInstance().getCurrentUser();
String uid= currentuser.getUid();
secondaryDB=firebaseDatabase.getInstance().getReference().child("android_demo").child("users").child(uid);
HashMap<String, String> userMap= new HashMap<>();
userMap.put("name",name);
userMap.put("fcm",fcm);
userMap.put("email",email);
userMap.put("mobile",mobile);
userMap.put("userid",userid+"");
userMap.put("image_url", profileimageUrl);
Log.e("DB Called","DatabaseCalled");
secondaryDB.setValue(userMap).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful())
{
Log.v("success","**************************");
}
}
});
}
}
});
答案 0 :(得分:1)
这是lambda风格
.createUserWithEmailAndPassword(email, pass)
.addOnCompleteListener(task -> {
if (!task.isSuccessful()) {
//error message
}else{
//success message
}
});
此外,您可以将光标置于灰色区域上,表示可以用lambda代替,然后按 ALT + Enter ,将出现提示,选择替换为lambda
答案 1 :(得分:0)
随着Lambda在Java 8中引入,请确保已安装Java 8及更高版本的JDK。 “ createUserWithEmailAndPassword”的Lambda表达式:
mAuth.createUserWithEmailAndPassword(emailId, password)
.addOnCompleteListener(OnCompleteListener { task ->
if (task.isSuccessful) {
}}