Alex Rivera | Logout

Is a boolean property name prefixed by "is" still a valid Java Bean?

Asked 2013-06-12T13:12:39.107
10

I just noticed something I didn't know.

  private boolean isCertified;

  public boolean isCertified() {
    return isCertified;
  }

  public void setCertified(boolean certified) {
    isCertified = certified;
  }

The following getters and setters have been generated by Intellij. By the way, Lombok generate the same kind of getters and setters.

I would have expected something like:

  private boolean isCertified;

  public boolean isIsCertified() {
    return isCertified;
  }

  public void setIsCertified(boolean certified) {
    isCertified = certified;
  }

That's why I usually don't prefix my boolean attributes with ìs, despites the fact I think the property name becomes more readable.

I normally write something like:

  private boolean certified;

  public boolean isCertified() {
    return certified;
  }

  public void setCertified(boolean certified) {
    certified = certified;
  }

So I wonder:

  • Having a property named isXXX and a getter being isXXX instead of isIsXXX: is it a valid Java Bean definition?

  • Are there any other hidden Java Bean corner cases like that, that I may want to know to improve the code readability?

Thanks

Edit
Report

1 Answer

0

When you generate setters/getters for boolean variable from IDE (Eclipse in many case), this is the standard way in which the setters and getters are created. It is a perfect valid Java bean definition. Infact when you use frameworks like JSF where values are passed using setters/getters, defining boolean variable and using the generated setter/getter becomes sort of mandatory.

answered 2013-06-12T13:24:30.453

Your Answer