我想了解Java中Boolean
和boolean
类型的区别,特别是它们与GWT的关系。
我知道方法不支持,但如果有更多信息,我想了解。
这很简单,对于GWT和Java都是相同的:
所以,除非你需要NULL(例如从数据库加载字段,并且你希望NULL与false不同),否则请使用boolean。
我不确定GWT因素是否有影响,但总的来说:
boolean 是 Java 的基础数据类型,而 Boolean 是一个封装了 boolean 类型的对象/引用类型。
这样在原始数据类型和对象之间进行转换被称为装箱/拆箱。
以下是更多信息:
http://javaeye.wordpress.com/2008/06/17/boxing-and-unboxing-conversion/
你可能会问,为什么要装箱?
http://java.sun.com/j2se/1.5.0/docs/guide/language/autoboxing.html
int
或 boolean
)放入集合中是包装对象(例如 Boolean
、Integer
等)存在的主要(如果不是唯一的)原因... - Julienboolean
是一个字面值true
或false
,而Boolean
是一个boolean
的对象包装器。List
中),很少有理由使用Boolean
而不是boolean
。
Boolean
还包含静态方法parseBoolean(String s)
,你可能已经知道。布尔类型可以为 null,因此可以用于延迟加载。
if(hasRoots == null){
calculateRoots();
}
Java有原始类型(int、boolean、float等),如果你想将它们用作对象的实例,则需要将它们包装在相关的类类型中。例如,布尔值被Booleans包装,整数被Integer包装等。
这也有它的好处。布尔没有辅助方法(因为它不是一个类),但是Boolean有。因此,如果您想将字符串转换为布尔值,可以尝试使用Boolean.valueOf("true")。
希望这能帮到您。
boolean是一个基本类型,而Boolean是一个包装类。对于(int,Integer),(long,Long)等也适用相同的规则。
包装类将相应的基本数据类型“包装”成该类的对象。
它们与集合一起使用,因为基本类型不允许与集合一起使用。此外,使用包装类可以让您访问可以在该对象上调用的许多方法。例如,Character包装类具有以下方法:
isDigit() - 用于确定字符是否为数字。 isLower() - 用于确定字符是否为小写字母。 isLetter() - 用于确定字符是否为字母。
如果我们使用基本类型而不是包装类,我们无法使用上述方法。
根据GWT JRE模拟文档(http://code.google.com/webtoolkit/doc/1.6/RefJreEmulation.html),以下方法支持Boolean类型:Boolean(boolean)、Boolean(String)、parseBoolean(String)、toString(boolean)、valueOf(boolean)、valueOf(String)、booleanValue()、compareTo(Boolean)、equals(Object)、hashCode()、toString()。
至于boolean和Boolean对象类型之间的区别。布尔对象可以处于3种状态,因此并不完全相同。但如果在GWT中这会对性能产生影响,我不知道,我猜测这并不是很重要,因为GWT编译器将优化代码,并且大多数操作只需要映射到本机JavaScript布尔操作。
但通常情况下,您必须进行测量以确定(并考虑到这可能基于您测量的浏览器/版本而异)。
Boolean对象类型通常不经常使用,因为布尔本机类型更自然(您不必一直检查null)。