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();
}