Можете ли вы объяснить имена методов isXxx в Java? - PullRequest
10 голосов
/ 23 августа 2011

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

Например:

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

private boolean conditionTrue;

Спасибо!

Ответы [ 3 ]

24 голосов
/ 23 августа 2011

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

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

Смотри также:


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

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

9 голосов
/ 23 августа 2011

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

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

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

6 голосов
/ 23 августа 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...