Анализаторы кода: PMD & FindBugs
1. Относительно PMD:
1.1 Как установить проверки PMD, чтобы игнорировать некоторые из них, такие как «Имя переменной слишком короткое или слишком длинное», «Удалить пустой конструктор и т. Д.» - и если я это сделаю, появится другое предупреждение, в котором говорится, что класс должен есть статические методы. По сути, класс был пуст для дальнейшего развития, и я хотел бы пока оставить его таким.
1.2 Нужно ли следовать этому предупреждению?
A class which only has private constructors should be final
1.3 Что это должно означать?
The class 'Dog' has a Cyclomatic Complexity of 3 (Highest = 17)
1.4 Как насчет этого? Я хотел бы изменить это, но в данный момент мне ничего не приходит в голову относительно изменений:
Assigning an Object to null is a code smell. Consider refactoring.
2. Относительно FindBugs:
2.1 Действительно ли плохо писать в статическое поле, в какой-то момент позже, чем его объявление? Следующий код дает мне предупреждение:
Main.appCalendar = Calendar.getInstance();
Main.appCalendar.setTimeInMillis(System.currentTimeMillis());
гдеappCalendar
является статической переменной
2.2 Этот код:
strLine = objBRdr.readLine().trim();
выдает предупреждение:
Immediate dereference of the result of readLine()
гдеobjBRdr
этоBufferedReader(FileReader)
, Что может случиться?readLine()
может быть нулевым? Код вложен вwhile (objBRdr.ready())
тест, и пока у меня проблем там ноль.
Обновление 1: 2.2 было исправлено, когда я заменил код на:
strLine = objBRdr.readLine();
if (strLine != null) {
strLine = strLine.trim();
}