Boolean包装类的源码解析

public final class Boolean implements java.io.Serializable,
                                      Comparable<Boolean>{
	public static final Boolean TRUE = new Boolean(true);
	public static final Boolean FALSE = new Boolean(false);
	 public static final Class<Boolean> TYPE = (Class<Boolean>) Class.getPrimitiveClass("boolean");
	 private final boolean value;
	 private static final long serialVersionUID = -3665804199014368530L;
	 //初始化value
	 public Boolean(boolean value) {
        this.value = value;
    }
	public Boolean(String s) {
        this(parseBoolean(s));
    }
    //判断s是否支持boolean参数
	public static boolean parseBoolean(String s) {
        return ((s != null) && s.equalsIgnoreCase("true"));
    }
    //返回value
	public boolean booleanValue() {
        return value;
    }
    //返回b的布尔值
	public static Boolean valueOf(boolean b) {
        return (b ? TRUE : FALSE);
    }
    //返回s的布尔值
	public static Boolean valueOf(String s) {
        return parseBoolean(s) ? TRUE : FALSE;
    }
    //打印b
	public static String toString(boolean b) {
        return b ? "true" : "false";
    }
    //打印布尔数据
	public String toString() {
        return value ? "true" : "false";
    }
    //计算hashCode值
	public static int hashCode(boolean value) {
        return value ? 1231 : 1237;
    }
    //返回hashCode值
	public int hashCode() {
        return Boolean.hashCode(value);
    }
    //判断布尔跟obj是否相同
	public boolean equals(Object obj) {
        if (obj instanceof Boolean) {
            return value == ((Boolean)obj).booleanValue();
        }
        return false;
    }
    //将name转为布尔
	public static boolean getBoolean(String name) {
        boolean result = false;
        try {
            result = parseBoolean(System.getProperty(name));
        } catch (IllegalArgumentException | NullPointerException e) {
        }
        return result;
    }
    //比较x、y的差值
    //定义true为1,false为-1
	public static int compare(boolean x, boolean y) {
        return (x == y) ? 0 : (x ? 1 : -1);
    }
    //比较布尔跟b的差值
	public int compareTo(Boolean b) {
        return compare(this.value, b.value);
    }
    //判断a、b的且逻辑值
	public static boolean logicalAnd(boolean a, boolean b) {
        return a && b;
    }
    //判断a、b的或逻辑值
	public static boolean logicalOr(boolean a, boolean b) {
        return a || b;
    }
    //判断a、b的异或逻辑值
	public static boolean logicalXor(boolean a, boolean b) {
        return a ^ b;
    }
}

Boolean包装类的方法很简单,也没有多少方法


版权声明:本文为qq_29070549原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。