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?
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;
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
}
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;
}
}
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;
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.