— Привіт, Аміго!
— Привіт, Кім.
— Я розповім тобі про тип Boolean. Це теж обгортка над типом boolean і він простий, як дошка. Небагато спрощений код класу Boolean:
Код
class Boolean
{
public static final Boolean TRUE = New Boolean (true);
public static final Boolean FALSE = новий 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);
}
}
— Тобто. клас просто є «обгорткою» над типом boolean.
— Ага. А ще має дві константи TRUE і FALSE, які є аналогами примітивних значень true/false.
З автобоксингом у нього теж все просто:
Код | Що відбувається насправді |
---|---|
|
|
А ось як відбуваються порівняння між типами boolean та Boolean:
Приклад
boolean a = true;
Boolean b = true; //буде рівний Boolean.TRUE
Boolean c = true; //буде рівний Boolean.TRUE
a == b; //true (порівнюються як примітиви за значенням)
a == c; //true (порівнюються як примітиви за значенням)
b == c; //true (порівнюються за посиланням, але вказують на той самий об'єкт)
Якщо потрібно створити незалежний об'єкт Boolean, то потрібно створити його явно:
Приклад
boolean a = true;
Boolean b = новий Boolean(true); //новий об'єкт Boolean
Boolean c = true; //буде рівний Boolean.TRUE
a == b; //true (порівнюються як примітиви за значенням)
a == c; //true (порівнюються як примітиви за значенням)
b == c; //false (порівнюються за посиланням, вказують на різні об'єкти)
Власне на цьому все.
— Так, твої лекції коротші, ніж у Білаабо.
А можна використовувати Boolean всередині if?
Boolean less = (2<3);
if (less)
{
….
}
— Так, тільки не забудь, що якщо less буде null, то викинеться виняток NullPointer.
— Так, я вже це зрозумів. Тільки не пам'ятаю весь час.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ