Можете ли вы объяснить имена методов isXxx в Java?

Существует ли в одном из спецификаций любая ссылка на методы, начинающиеся с "is", а суффикс имени метода - это имя свойства (аналогично методам getter/setter для Java beans)?

Например:

public boolean isConditionTrue() {
   ...
   ...
}

private boolean conditionTrue;

Спасибо!

Ответ 1

действует только для примитивного булева. Вот выдержка из спецификация:

8.3.2 Логические свойства       Кроме того, для булевых свойств мы позволяем методу геттера соответствовать шаблону:           public boolean is();       Этот метод "есть" может быть предоставлен вместо "get" meth-       od, или он может быть предоставлен в дополнение к методу "get".       В любом случае, если метод "is" присутствует для логического свойства, тогда мы будем       используйте метод "is", чтобы прочитать значение свойства.       Примером логического свойства может быть:                    public boolean isMarsupial();                    public void setMarsupial (boolean m);

Помните об использовании функций isXxx() : Boolean, если вы собираетесь использовать их в сочетании с такими вещами, как теги JSTL (с использованием синтаксиса ${object.xxx}). Они не подберут его, и вы должны изменить его на getXxx() : Boolean.

Ответ 2

Это соглашение об именах Java,

Если метод возвращает значение boolean, используйте is или has в качестве префикса для имя метода. Например, используйте isOverdrawn или hasCreditLeft для методы, возвращающие значения true или false. Избегайте использования слова not в имени метода boolean вместо этого используйте оператор !. Для например, используйте !isOverdrawn вместо isNotOverdrawn.

См. также:


В соответствии с Спецификацией языка Java,

Метод, который проверяет условие boolean V об объекте, должен быть назван isV. Примером может служить метод isInterrupted класса Thread.

Ответ 3

Это is префикс для методов доступа к boolean типа переменных экземпляра.

Это соглашение для типов данных boolean, а get/set - convention для других типов.