Code-Analysatoren: PMD & FindBugs
1. In Bezug auf PMD:
1.1 Wie stelle ich die PMD-Prüfungen ein, um einige davon zu ignorieren, z. B. "Variablenname ist zu kurz oder zu lang", "Leeren Konstruktor entfernen usw." - und wenn ich das tue, wird eine weitere Warnung angezeigt, die besagt, dass die Klasse muss haben einige statische Methoden. Grundsätzlich war die Klasse für spätere Entwicklungen leer, und ich lasse es vorerst gerne so.
1.2 Muss dieser Warnhinweis befolgt werden?
A class which only has private constructors should be final
1.3 Was soll das heißen?
The class 'Dog' has a Cyclomatic Complexity of 3 (Highest = 17)
1.4 Was ist mit diesem? Ich würde das gerne ändern, aber im Moment fällt mir nichts ein, was die Änderung betrifft:
Assigning an Object to null is a code smell. Consider refactoring.
2. Bezüglich FindBugs:
2.1 Ist es wirklich so schlimm, in ein statisches Feld zu schreiben, irgendwann später als seine Deklaration? Der folgende Code gibt mir eine Warnung:
Main.appCalendar = Calendar.getInstance();
Main.appCalendar.setTimeInMillis(System.currentTimeMillis());
woherappCalendar
ist eine statische Variable.
2.2 Dieser Code:
strLine = objBRdr.readLine().trim();
gibt die Warnung:
Immediate dereference of the result of readLine()
woherobjBRdr
ist einBufferedReader(FileReader)
. Was könnte passieren?readLine()
könnte null sein? Der Code ist in verschachteltwhile (objBRdr.ready())
test, und bisher habe ich da keine probleme.
Update1: 2.2 wurde behoben, als ich den Code durch Folgendes ersetzte:
strLine = objBRdr.readLine();
if (strLine != null) {
strLine = strLine.trim();
}