Analisadores de código: PMD e FindBugs

1. Em relação ao PMD:

1.1 Como faço para definir as verificações de PMD, para ignorar alguns deles, como "Nome da variável é muito curto ou muito longo", "Remover construtor vazio, etc" - e se eu fizer isso, outro aviso aparece que diz que a classe deve tem alguns métodos estáticos. Basicamente, a aula estava vazia, para desenvolvimento posterior, e eu gosto de deixar assim por enquanto.

1.2 É necessário seguir este aviso?

  A class which only has private constructors should be final

1.3 O que isso significa?

 The class 'Dog' has a Cyclomatic Complexity of 3 (Highest = 17)

1.4 E quanto a este? Eu adoraria mudar isso, mas nada me vem à mente no momento em relação à mudança:

Assigning an Object to null is a code smell. Consider refactoring.

2. Considerando FindBugs:

2.1 É realmente tão ruim escrever em um campo estático, em algum momento posterior à sua declaração? O código a seguir me dá um aviso:

Main.appCalendar = Calendar.getInstance();
Main.appCalendar.setTimeInMillis(System.currentTimeMillis());

OndeappCalendar é uma variável estática.

2.2 Este código:

strLine = objBRdr.readLine().trim();

dá o aviso:

Immediate dereference of the result of readLine()

OndeobjBRdr é umBufferedReader(FileReader). O que poderia acontecer?readLine() poderia ser nulo? O código está aninhado emwhile (objBRdr.ready()) teste, e até agora, eu tenho zero problemas lá.

Update1: 2.2 foi corrigido quando substituí o código por:

strLine = objBRdr.readLine();
    if (strLine != null) {
        strLine = strLine.trim();
    }

questionAnswers(2)

yourAnswerToTheQuestion