« Salut Amigo ! »

"Salut, Kim."

"Je vais vous parler du type booléen. C'est un wrapper pour le type booléen, et c'est aussi simple que bonjour. Voici du code simplifié de la classe booléenne :"

Code
class Boolean
{
 public static final Boolean TRUE = new Boolean(true);
 public static final Boolean FALSE = new Boolean(false);

 private final boolean value;

 public Boolean(boolean value)
 {
  this.value = value;
 }

 public boolean booleanValue()
 {
  return value;
 }

 public static Boolean valueOf(boolean b)
 {
  return (b ? TRUE : FALSE);
 }
}

"En d'autres termes, la classe est simplement un wrapper pour le type booléen."

"Oui. Et il a deux constantes (TRUE et FALSE), qui sont les contreparties des valeurs primitives true et false."

"Il gère également la boxe automatique comme un champion :"

Code Que se passe-t-il vraiment
Boolean a = true;
Boolean b = true;
Boolean c = false;
boolean d = a;
Boolean a = Boolean.valueOf(true);
Boolean b = Boolean.valueOf(true);
Boolean c = Boolean.valueOf(false);
boolean d = a.booleanValue();

"Et voici comment fonctionnent les comparaisons entre les types booléens et booléens :"

Exemple
boolean a = true;
Boolean b = true; //Will be equal to Boolean.TRUE
Boolean c = true; //Will be equal to Boolean.TRUE

a == b; //true (comparison based on primitive value)
a == c; //true (comparison based on primitive value)
b == c; //true (comparison based on references, but they point to the same object)

"Si vous avez vraiment besoin de créer un objet booléen indépendant, vous devez le créer explicitement :

Exemple
boolean a = true;
Boolean b = new Boolean(true); //A new Boolean object
Boolean c = true; //Will be equal to Boolean.TRUE

a == b; //true (comparison based on primitive value)
a == c; //true (comparison based on primitive value)
b == c; //false (comparison based on references; they point to different objects)

"Je pense que c'est tout pour le moment."

« Ouais, tes cours sont plus courts que ceux de Bilaabo.

"Alors, puis-je utiliser Boolean dans une condition if?"

Boolean less = (2 < 3);
if (less)
{
….
}

"Oui, n'oubliez pas que si less est null, alors une NullPointerException sera lancée."

"Ouais, je comprends déjà. Je ne garde pas tout ça dans ma tête tout le temps."