j'ai une question sur le sens (évaluation) des variables booléennes dans les états de retour en Java.expressions booléennes en Java
Je sais que:
if (var) { ... }
est le même que:
if (var==true) { ... }
Dans le second cas, nous disons explicitement var == vrai, mais on n'a pas besoin de faire cela, parce que Java évalue var comme vrai de toute façon. J'espère avoir compris ce droit.
Ma question est: est-ce la même chose quand les variables booléennes sont retournées? Lorsque nous avons une déclaration de retour?
Par exemple, une tâche spécifie: la méthode looksBetter() ne renvoie true que si b < a. Ma solution a été:
public boolean looksBetter() {
if (b < a) {
return true;
} else {
return false;
}
}
La réponse simple est:
public boolean lookBetter() {
return b < a;
}
Ainsi, il semble que nous avons ici encore une fois cette hypothèse implicite que dans le cas b < un == vrai, le retour de la méthode est vrai. Je suis désolé ... cela semble très trivial, mais je ne suis pas d'accord avec ça, et je ne sais pas pourquoi. Je vous remercie.
Mais pour toutes fins utiles, en particulier avec l'auto-boxing, les primitives et les wrappers d'objets sont la même chose. – cdeszaq
Je suis d'accord sur un point, mais il y a certainement une différence entre eux qui devrait être comprise, en particulier pour quelqu'un de nouveau à la langue. –
Le seul gotcha avec l'approche "essentiellement la même chose" est l'utilisation de null. Les objets peuvent être NULL, les primitives ne le peuvent pas. Essayez l'auto-déballage d'un null. Pas exactement évident ce que l'exception signifie. – basszero