概况
Java 的 Boolean 类主要作用就是对基本类型 boolean 进行封装, 提供了一些处理 boolean 类型的方法
当作为一个构造函数 (带有运算符 new) 调用时, Boolean() 将把它的参数转换成一个布尔值, 并且返回一个包含该值的 Boolean 对象
如果作为一个函数 (不带有运算符 new) 调用时, 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 型
来源: https://juejin.im/post/5a9e8825f265da23a04914b8