Мы используем CheckStyle для обеспечения соблюдения наших стандартов стиля. Одним из правил стиля, которые мы решили включить, был модуль NeedBraces.
NeedBraces указывает, что каждый оператор типа блока (например, if
, else
, for
) должны иметь открывающую и закрывающую фигурные скобки. Однако, насколько я могу судить, он работает не совсем корректно.
Этот пример вызовет ошибку CheckStyle.
if (true)
{
System.out.println("20");
}
else
System.out.println("30");
Потому что в случае else нет фигурных скобок. Однако следующий пример не вызывает ошибку CheckStyle.
if (true)
{
System.out.println("20");
}
else
if (true)
{
System.out.println("30");
}
Это должно было потерпеть неудачу из-за отсутствия фигурных скобок в случае else, но checkstyle позволяет пройти. После двойной проверки документации я не могу найти причину, по которой это работает неправильно.
Итак... Может ли модуль CheckStyle "NeedBraces" работать с вложенными блоками if/else? Есть идеи?
Ответ на этот вопрос требует еще один вопрос: существует ли правило помечать указанный выше нежелательный код как нарушение?