Анализаторы кода: 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();
    }

Ответы на вопрос(2)

Ваш ответ на вопрос