Недавно в моем проекте я столкнулся с кодом, который прекрасно компилируется, однако очень удивителен для любого читателя и не должен проходить статический анализ.
class BracketsAfterMethodSignature {
Object emptyArray()[] {
return new Object[]{};
}
}
Мы используем Checkstyle, PMD, ErrorProne и SonarLint, нони один из этих инструментов не жалуется на такую конструкцию.Есть ли какое-либо правило, которое можно включить или инструмент, который можно использовать для предотвращения такого кода?
Очевидно, ArrayTypeStyle Checkstyle не включает такой случай.
EDIT
Я выполнял статический анализ файла с расширением .groovy
, и SonarLint сказал, что этот код в порядке.После изменения расширения на .java обнаружена проблема.И действительно, после обновления до 8.18 Checkstyle также определяет его правильно.