boolean (Boolean) - getter is vs get

Deadly 提交于 2020-02-01 00:46:33

问题


It looks like everyone says that right getter for:

  • primitive boolean -> getter is
  • object Boolean -> getter get

Example:

public class Test {

    private boolean primitive;
    private Boolean object;

    public boolean isPrimitive() {
         return primitive;
    }
    public Boolean getObject() {
        return object;
    }
    //..
}

Question:

Is there any spec or document that states this is correct and this is the way to specify getters for boolean values? Or this is only a common assumption?

I'm asking becouse for example wsimport generates getter is for Boolean object. Is this a tool bug, or this is allowed and correct?

In the other hand some framweorks don't work properly with such getters. For example JSF (EL) or Dozer.


回答1:


The getter method for the field boolean myField is getMyfield() or isMyField() (it's up to the user to choose). I personally use the second format, as many source code generating tools do.

This format is a standard, it is defined in the JavaBeans specification. See the section 8.3.2 of this documentation: http://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/

Quote from the docs:

In addition, for boolean properties, we allow a getter method to match the pattern:

  public boolean is<PropertyName>();

The documentation doesn't talk about the primitive wrappers like the Boolean class.




回答2:


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.

But frankly, its left to the developer. There's nothing "wrong" in using getBoolean on a boolean value ('is' makes more sense.. thats it.)..



来源:https://stackoverflow.com/questions/21851708/boolean-boolean-getter-is-vs-get

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!