建站 wordpress,网站后台更新 前台为啥没反应,建站推广外包,wordpress修改密码后还是登陆不了Boolean 类是将 boolean 基本类型进行包装。类型为 Boolean 的对象包含一个单一属性 value#xff0c;其类型为 boolean。 此外还提供了许多将 boolean 转换为 String、String 转换为 boolean#xff0c;以及其他一些方法。 一、类定义
public final class Boolean implemen… Boolean 类是将 boolean 基本类型进行包装。类型为 Boolean 的对象包含一个单一属性 value其类型为 boolean。 此外还提供了许多将 boolean 转换为 String、String 转换为 boolean以及其他一些方法。 一、类定义
public final class Boolean implements java.io.Serializable,ComparableBoolean
{实现的两个接口
java.io.Serializable可被序列化的标志接口Comparable强行对实现它的每个类的对象进行整体排序
二、成员变量 public static final Boolean TRUE new Boolean(true);public static final Boolean FALSE new Boolean(false);public static final ClassBoolean TYPE (ClassBoolean) Class.getPrimitiveClass(boolean);private final boolean value;
在内部维护了一个 boolean 类型的 value在我们调用构造器的时候会将 value 给赋值。
还可以看到内部还有三个常量其中两个是 TRUE、FALSE 分别代表布尔值的两个状态这样我们在使用的时候就可以直接用而不需要去构建一个。
还有一个 TYPE 是接收了 Class.getPrimitiveClass(“boolean”); 的返回值我们跟进去可以看到 getPrimitiveClass 是一个 native 方法。
static native Class? getPrimitiveClass(String name);三、构造方法 public Boolean(boolean value) {this.value value;}//调用parseBoolean(s)public Boolean(String s) {this(parseBoolean(s));}//字符串s忽略大小写后与“true”相等则返回(Boolean)truepublic static boolean parseBoolean(String s) {return ((s ! null) s.equalsIgnoreCase(true));}
四、普通方法
4.1、toString
三目表达式 public String toString() {return value ? true : false;}Overridepublic int hashCode() {return Boolean.hashCode(value);}4.2、hashCode(boolean value)
即 true 返回 1231 而 false 返回 1237 public static int hashCode(boolean value) {return value ? 1231 : 1237;}public boolean equals(Object obj) {if (obj instanceof Boolean) {return value ((Boolean)obj).booleanValue();}return false;}4.3、getBoolean(String name)
获取系统属性 public static boolean getBoolean(String name) {boolean result false;try {result parseBoolean(System.getProperty(name));} catch (IllegalArgumentException | NullPointerException e) {}return result;}4.4、compareTo(Boolean b)
相同为0this.value为true返回1b.value为true返回-1 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);}4.5、逻辑运算 public static boolean logicalAnd(boolean a, boolean b) {return a b;}public static boolean logicalOr(boolean a, boolean b) {return a || b;}public static boolean logicalXor(boolean a, boolean b) {return a ^ b;}4.6、equals(Object obj)
先判断是不是从 Boolean 实例化出来的然后再继续比较是不是相等。
public boolean equals(Object obj) {if (obj instanceof Boolean) {return value ((Boolean)obj).booleanValue();}return false;
}4.7、官方推荐方式valueOf() public static Boolean valueOf(boolean b) {return (b ? TRUE : FALSE);}public static Boolean valueOf(String s) {return parseBoolean(s) ? TRUE : FALSE;}public static String toString(boolean b) {return b ? true : false;}五、总结
Boolean用两个final的静态变量来表示不同状态的实例通常这个方法我们也可以借鉴例如编写一个Weekday类状态只有7个就不要让用户写new Weekday(1)直接提供Weekday.MONDAY即可。
Boolean为防止用户使用new生成实例就取消public构造方法用户要获得静态实例的引用有两个方法如果申明了public static var就可以直接访问比如Boolean.TRUE第二个方法是通过静态工厂方法Boolean.valueOf(?)。
如果不提供public构造方法让用户只能通过上面的方法获得静态变量的引用还可以大大简化equals()方法
public boolean equals(Object obj) {return thisobj;
}