Search code examples
javawsimport

boolean (Boolean) - getter is vs get


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.


Solution

  • 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.