概況
Java的Boolean類主要作用就是對基本型別boolean進行封裝,提供了一些處理boolean型別的方法。
主要屬性
public static final Boolean TRUE = new Boolean(true);
public static final Boolean FALSE = new Boolean(false);複製程式碼
boolean 資料型別 boolean 變數儲存為 8 位(1 個位元組)的數值形式,但只能是 True 或是 False。
public static final Class<Boolean> TYPE = Class.getPrimitiveClass("boolean");
複製程式碼
TYPE的toString的值是boolean。
private final boolean value;
複製程式碼
既然是對基本型別boolean的封裝,那必然要有一個變數來儲存,即value,而且它被宣告為final,表明它是不可變的。
主要方法
toBoolean方法
private static boolean toBoolean(String name) {
return ((name != null) && name.equalsIgnoreCase("true"));
}
複製程式碼
當所給字串 不為null,且等於字串true時(不論大小寫,即大小寫不敏感),返回true,其餘返回false
構造方法
public Boolean(boolean value) {
this.value = value;
}
public Boolean(String s) {
this(toBoolean(s));
}複製程式碼
構造方法有兩種,第一種是傳入boolean型別,直接將傳入的值返回給你,第二種是String型別,對於String型別會進行toBoolean解析,即當傳入的字串忽略大小寫等於”true”時判斷為true,否則為false。
valueOf方法
public static Boolean valueOf(boolean b) {
return (b ? TRUE : FALSE);
}
public static Boolean valueOf(String s) {
return toBoolean(s) ? TRUE : FALSE;
}複製程式碼
valueOf方法有兩種,第一種是傳入boolean型別,通過三目運算求出值,當然也相當於直接將傳入的值返回給你,第二種是String型別,對於String型別會進行toBoolean解析,即當傳入的字串忽略大小寫等於”true”時判斷為true,否則為false。
toString方法
public static String toString(boolean b) {
return b ? "true" : "false";
}
public String toString() {
return value ? "true" : "false";
}複製程式碼
返回表示指定布林值的String物件。如果指定的布林值為true,則字串“true”將被返回,否則字串“false”將被返回。
hashCode方法
public int hashCode() {
return value ? 1231 : 1237;
}
複製程式碼
即true返回1231而false返回1237。
compareTO方法
public int compareTo(Boolean b) {
return compare(this.value, b.value);
}
public static int compare(boolean x, boolean y) {
return (x == y) ? 0 : (x ? 1 : -1);
}複製程式碼
compareto方法,它會呼叫compare方法,對於兩個boolean值進行三目運算,如果兩個值相等,則返回0,如果第一個boolean值=true,返回1,反之返回false
equals方法
public boolean equals(Object obj) {
if (obj instanceof Boolean) {
return value == ((Boolean)obj).booleanValue();
}
return false;
}複製程式碼
equals
方法就是先判斷是不是從Boolean例項化出來的,然後再繼續比較是不是相等。
getBoolean方法
public static boolean getBoolean(String name) {
boolean result = false;
try {
result = toBoolean(System.getProperty(name));
} catch (IllegalArgumentException e) {
} catch (NullPointerException e) {
}
return result;
}複製程式碼
獲取一個系統屬性的boolean值,當系統屬性的值equal(“true”)時,返回true,否則返回false,並且返回值是boolean型