Analizatory kodu: PMD i FindBugs
1. Odnośnie PMD:
1.1 Jak ustawić kontrole PMD, zignorować niektóre z nich, np. „Nazwa zmiennej jest zbyt krótka lub zbyt długa”, „Usuń pusty konstruktor itp.” - a jeśli to zrobię, pojawi się kolejne ostrzeżenie, że klasa musi mieć kilka metod statycznych. Zasadniczo klasa była pusta, na późniejszy rozwój i na razie lubię ją pozostawić w ten sposób.
1.2 Czy konieczne jest przestrzeganie tej porady ostrzegawczej?
A class which only has private constructors should be final
1.3 Co to ma znaczyć?
The class 'Dog' has a Cyclomatic Complexity of 3 (Highest = 17)
1.4 Co z tym? Chciałbym to zmienić, ale w tej chwili nic nie przychodzi mi do głowy w związku ze zmianą:
Assigning an Object to null is a code smell. Consider refactoring.
2. Dotyczące FindBugs:
2.1 Czy naprawdę jest tak źle pisać w polu statycznym, w pewnym momencie później niż jego deklaracja? Poniższy kod ostrzega mnie:
Main.appCalendar = Calendar.getInstance();
Main.appCalendar.setTimeInMillis(System.currentTimeMillis());
gdzieappCalendar
jest zmienną statyczną.
2.2 Ten kod:
strLine = objBRdr.readLine().trim();
podaje ostrzeżenie:
Immediate dereference of the result of readLine()
gdzieobjBRdr
jestBufferedReader(FileReader)
. Co może się stać?readLine()
może być null? Kod jest zagnieżdżony wwhile (objBRdr.ready())
test i jak dotąd nie mam tam żadnych problemów.
Aktualizacja1: 2.2 została naprawiona po zastąpieniu kodu przez:
strLine = objBRdr.readLine();
if (strLine != null) {
strLine = strLine.trim();
}