Valid JavaBeans names for boolean getter methods

Robert picture Robert · Apr 28, 2009 · Viewed 28.7k times · Source

I know most variable names will work with "is", such as isBlue(), but is "has" also a valid prefix, like hasProperty()?

Answer

Jon Skeet picture Jon Skeet · Apr 28, 2009

According to the JavaBeans specification section 8.3.2:

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

public boolean is<PropertyName>();

This "isPropertyName" method may be provided instead of a "get<PropertyName>" method, or it may be provided in addition to a "get<PropertyName>" method. In either case, if the is<PropertyName> method is present for a boolean property then we will use the "is<PropertyName>" method to read the property value. An example boolean property might be:

public boolean isMarsupial(); public void setMarsupial(boolean m);

In other words, unless something has changed since then, has isn't a valid prefix I'm afraid :(

It's possible that some tools and libraries will recognise such properties anyway, but it's not a good idea to rely on it.