web-dev-qa-db-fra.com

Comment retourner une méthode booléenne en java?

J'ai besoin d'aide pour retourner une méthode booléenne en Java. C'est l'exemple de code:

public boolean verifyPwd(){
        if (!(pword.equals(pwdRetypePwd.getText()))){
                  txtaError.setEditable(true);
                  txtaError.setText("*Password didn't match!");
                  txtaError.setForeground(Color.red);
                  txtaError.setEditable(false);
           }
        else {
            addNewUser();
        }
        return //what?
}

Je veux que la verifyPwd() renvoie une valeur sur true ou false chaque fois que je souhaite appeler cette méthode. Je veux appeler cette méthode comme ceci:

if (verifyPwd()==true){
    //do task
}
else {
    //do task
}

Comment définir la valeur pour cette méthode?

19
Jay Marz

Vous êtes autorisé à avoir plus d'une déclaration return, il est donc légal d'écrire

if (some_condition) {
  return true;
}
return false;

Il est également inutile de comparer les valeurs booléennes à true ou false pour pouvoir écrire

if (verifyPwd())  {
  // do_task
}

Edit: Parfois, vous ne pouvez pas revenir plus tôt car il y a encore du travail à faire. Dans ce cas, vous pouvez déclarer une variable booléenne et la définir correctement dans les blocs conditionnels.

boolean success = true;

if (some_condition) {
  // Handle the condition.
  success = false;
} else if (some_other_condition) {
  // Handle the other condition.
  success = false;
}
if (another_condition) {
  // Handle the third condition.
}

// Do some more critical things.

return success;
21
Adam Liss

essaye ça:

public boolean verifyPwd(){
        if (!(pword.equals(pwdRetypePwd.getText()))){
                  txtaError.setEditable(true);
                  txtaError.setText("*Password didn't match!");
                  txtaError.setForeground(Color.red);
                  txtaError.setEditable(false);
                  return false;
           }
        else {
            return true;
        }

}

if (verifyPwd()==true){
    addNewUser();
}
else {
    // passwords do not match
}
5
PC.
public boolean verifyPwd(){
        if (!(pword.equals(pwdRetypePwd.getText()))){
                  txtaError.setEditable(true);
                  txtaError.setText("*Password didn't match!");
                  txtaError.setForeground(Color.red);
                  txtaError.setEditable(false);
                  return false;
           }
        else {
            addNewUser();
            return true;
        }
}
2
Mihai Danila

Vous pouvez également le faire, par souci de lisibilité

boolean passwordVerified=(pword.equals(pwdRetypePwd.getText());

if(!passwordVerified ){
    txtaError.setEditable(true);
    txtaError.setText("*Password didn't match!");
    txtaError.setForeground(Color.red);
    txtaError.setEditable(false);
}else{
    addNewUser();
}
return passwordVerified;
2
Karthik T

Le meilleur moyen serait de déclarer Boolean variable dans le bloc de code et return il à la fin du code, comme ceci:

public boolean Test(){
    boolean booleanFlag= true; 
    if (A>B)
    {booleanFlag= true;}
    else 
    {booleanFlag = false;}
    return booleanFlag;

}

Je trouve cela le meilleur moyen.

0
SSS