Правильное именование getter и setter для boolean в Java
Быстрый ответ
Применяйте префикс 'is' для геттеров булевых полей в Java:
private boolean active;
public boolean isActive() {  // Префикс 'is' следует общей конвенции!
    return active;
}
// И для сеттера сохраняйте стандарты
public void setActive(boolean active) { // Чётко и понятно!
    this.active = active;
}
Если применение is кажется неподходящим, рассмотрите альтернативные варианты — has, can, should:
private boolean hasAccount;   
public boolean hasAccount() { // Полностью соответствует смыслу
    return hasAccount;
}
public void setHasAccount(boolean hasAccount) { // Логично и понятно
    this.hasAccount = hasAccount;
}
Ясность коммуникации важнее строгих правил.

Анализ контекста: Как выбрать префикс?
Применение 'is', 'has', 'can', 'should'
Префикс зависит от значения булевого поля. Рассмотрим примеры:
- Существование или владение: Если имеется поле hasLicense, тоpublic boolean hasLicense()будет уместно.
- Способность: Для поля canDoTaskидеально подходитpublic boolean canDoTask().
- Рекомендация: Поле shouldContinueобозначает целесообразность, поэтомуpublic boolean shouldContinue()великолепно подходит.
Грамотный выбор префикса повышает понимание кода и улучшает его читаемость.
Как усовершенствовать именование полей и методов
Избегайте злоупотребления 'is'
Не подойдёт isIsAvailable() для поля isAvailable, не так ли?
// Выглядит нелепо
private boolean isAvailable;
public boolean isIsAvailable() { // Не самый лучший вариант
    return isAvailable;
}
Лучше назвать поле available и метод isAvailable().
Распространённые ошибки и способы избежать их
Избегайте абстрактных имен
Применяйте конкретные названия вместо путаницы, как status или flag. Вместо isStatus лучше isOrderConfirmed.
Учёт различий между классами-обёртками и примитивами
При работе с Boolean и boolean, учтите различия:
private Boolean isActive; // Объектный тип Boolean
public Boolean getActive() { // Для класса-обёртки используется 'get'
    return isActive;
}
private boolean active; // Примитивный тип
public boolean isActive() { // Для примитивного типа подходит 'is'
    return active;
}
Визуализация
В Java булевые поля функционируют как выключатели в доме:
| Действие | Метод | 
|---|---|
| 💡 Проверить свет | isLightOn() | 
| 🔛 Включить свет | setLightOn() | 
| 🔚 Выключить свет | setLightOff() | 
- is— это индикатор необходимости в свете.
- set— регулятор света.
🏡 До: isLightOn() -> 💡Нет,
🏡 После: setLightOn(true) -> 💡Теперь светло!
'Функциональная' сторона программирования: Дополнительные советы
Согласованность важна при работе в команде
Важно согласовать правила именования методов в команде. Это сократит путаницу и освободит время для перерывов!
Для авторов библиотек: Четкость — ключ к успеху
Если вы разрабатываете API или библиотеку, стремитесь к интуитивно понятному интерфейсу. Взаимодействие с кодом должно быть комфортным.
Тестируйте геттеры, чтобы избежать ошибок
Геттеры для булевых полей активно используются в модульных тестах. Чем понятнее имена методов, тем проще тестировать их.
Полезные материалы
- JavaBeans Specification — документация по шаблонам JavaBeans.
- java – Каковы правила именования геттеров и сеттеров для булевых полей? – Stack Overflow — советы по именованию геттеров и сеттеров.
- Соглашение о кодировании на Java: 9. Правила именования — официальные соглашения по именованию в Java.
- Google Java Style Guide — руководство по стилю кодирования от Google.
- BeanUtils – Commons — инструменты для работы с JavaBeans.
- IBM Developer — о важности соблюдения норм именования для командной работы.


