看起来每个人都说正确的吸气者:
示例:
public class Test {
private boolean primitive;
private Boolean object;
public boolean isPrimitive() {
return primitive;
}
public Boolean getObject() {
return object;
}
//..
}
问题:
是否有任何规范或文档表明这是正确的,这是为布尔值指定getter的方法?或者这只是一个常见的假设?
我问因为例如 wsimport 为布尔对象生成getter 。这是一个工具错误,还是允许这样做?
另一方面,一些framweork与这样的吸气剂不能正常工作。例如JSF(EL)或Dozer。
答案 0 :(得分:8)
字段boolean myField
的getter方法是getMyfield()
或isMyField()
(由用户自行决定)。我个人使用第二种格式,就像许多源代码生成工具一样。
此格式是标准,它在JavaBeans
规范中定义。请参阅本文档的部分8.3.2 :
http://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/
来自文档的引用:
In addition, for boolean properties, we allow a getter method to match the pattern: public boolean is<PropertyName>();
文档没有讨论像Boolean
类这样的原始包装器。
答案 1 :(得分:5)
public boolean isPrimitive() {
return primitive; // "is" used because the value can be either true or false. Its like asking isTrue??
}
public Boolean getObject() {
return object; // "get" is used because the value returned can be either true, false or null. So, the third state 'null' makes you wonder if 'is' should be used or 'get'. get is more appropriate as Boolean can also have null.
但坦率地说,它留给了开发者。在布尔值上使用getBoolean没有“错误”('is'更有意义......就是这样。)..