У меня есть метод, который возвращает логическое значение, и в этом методе у меня есть дочерний метод, который возвращает void. Как я могу использовать локальную переменную родительского метода в дочернем методе и вернуть родительскому методу эту переменную?
@Override
public boolean seConnecter( Utilisateur utilisateur) {
boolean ok=false;
db.collection("UTILISATEUR")
.whereEqualTo("email", utilisateur.getEmail())
.whereEqualTo("password",utilisateur.getPassword())
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
if (!task.getResult().isEmpty()) {
//I want to use ok there
Log.d(TAG, "Utilisateur trouvé: ");
} else {
Log.e(TAG, "Utilisateur non trouvé ");
}
} else {
Log.e(TAG, "Erreur: ", task.getException());
}
}
});
return ok;
}
Я попробовал после, но он тоже не работает
public class TraitementUtilisateur implements IUtilisateur<Utilisateur> {
private boolean res;
private boolean result;
...//Getters and setters there
@Override
public boolean seConnecter( Utilisateur utilisateur) {
...
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
if (!task.getResult().isEmpty()) {
setRes(true);
..
} else {
setRes(false);
...
}
} else {
setRes(false);
...
}
}
});
setResult(getRes());
return getResult();
}