"Cześć, Amigo!"

– Cześć, Kim.

„Opowiem ci o typie boolowskim. Jest to opakowanie dla typu boolowskiego i jest dziecinnie proste. Oto uproszczony kod z klasy boolowskiej:”

Kod
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);
 }
}

„Innymi słowy, klasa jest po prostu opakowaniem dla typu boolowskiego”.

„Tak. I ma dwie stałe (PRAWDA i FAŁSZ), które są odpowiednikami pierwotnych wartości prawda i fałsz”.

„Obsługuje również autoboxing jak mistrz:”

Kod Co naprawdę się dzieje
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();

„A oto jak działają porównania między typami boolowskimi i boolowskimi:”

Przykład
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)

„Jeśli naprawdę potrzebujesz stworzyć niezależny obiekt logiczny, musisz go utworzyć jawnie:

Przykład
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)

– Myślę, że to wszystko na teraz.

„Tak, twoje lekcje są krótsze niż u Bilaabo”.

„Więc czy mogę użyć wartości logicznej wewnątrz warunku if?”

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

„Tak, tylko nie zapominaj, że jeśli less ma wartość null, zostanie zgłoszony wyjątek NullPointerException”.

„Tak, już to rozumiem. Po prostu nie trzymam tego wszystkiego w głowie przez cały czas”.