Question

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.

Était-ce utile?

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

Autres conseils

// "is" used because the value can be either true or false. It's like asking isTrue?
public boolean isPrimitive() {
     return primitive;
}

// "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.
public Boolean getObject() {
    return object;
}

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top