"Ciao, Amico!"
"Ciao Kim."
"Ti parlerò del tipo booleano. È un wrapper per il tipo booleano ed è facile come una torta. Ecco un codice semplificato dalla classe booleana:"
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);
}
}
"In altre parole, la classe è semplicemente un wrapper per il tipo booleano."
"Sì. E ha due costanti (VERO e FALSO), che sono controparti dei valori primitivi vero e falso."
"Gestisce anche l'autoboxing come un campione:"
Codice | Cosa succede davvero |
---|---|
|
|
"Ed ecco come funzionano i confronti tra tipi booleani e booleani:"
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)
"Se hai davvero bisogno di creare un oggetto booleano indipendente, devi crearlo in modo esplicito:
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)
"Penso che per ora sia tutto."
"Sì, le tue lezioni sono più brevi di quelle di Bilaabo."
"Quindi, posso usare Boolean all'interno di una condizione if?"
Boolean less = (2 < 3);
if (less)
{
….
}
"Sì, ma non dimenticare che se less è nullo, verrà generata un'eccezione NullPointerException."
"Sì, l'ho già capito. È solo che non me lo tengo sempre in testa."
GO TO FULL VERSION