我想知道是否有任何遗留原因或常见用例,因为我认为这个构造函数没有任何用处。
为什么要用这个:
Boolean b = new Boolean(var);
当我们有:
Boolean b = var; // Java will auto-box into Boolean.TRUE / Boolean.FALSE
或
Boolean b = Boolean.valueOf(var);
文档声明除非需要新实例,否则很少使用此构造函数。
我们什么时候需要新实例?
答案 0 :(得分:0)
以下是您如何使用不同实例的示例:
private static Boolean NO_VALUE = new Boolean(false);
private Boolean foo = NO_VALUE;
public setFoo(Boolean foo) { // may be TRUE, FALSE or null
if(foo = NO_VALUE) {
// initialization logic
}
this.foo = foo;
}
这可能不是最好的用例,但我认为它证明了为什么一个不同的实例并非完全没用。