Dlaczego powinienem wstawiać końcowy przecinek?
Nie musisz. Podejrzewam, że Sonar powinien pokazywać ostrzeżenie.
Zależy od preferencji programisty, co preferuje. Dodanie końcowego przecinka na końcu tablicy ułatwia usunięcie lub dodanie dowolnego wpisu później z tablicy.
Tak więc, jeśli masz tablicę jak:
String[] arr = new String[] {
"abc",
"def",
"ghi",
}
Dodawanie wpisu jedynie wymaga, aby dodać ten wpis ze spływu przecinek na końcu swojej tablicy. Bez przecinka trzeba najpierw dodać przecinek, a następnie element.
Usunięcie elementu wymaga usunięcia tej linii zawierającej ten element. Lub po prostu komentując tę linię.
String[] arr = new String[] {
"abc",
"def",
// "ghi", // This won't cause any error
}
Jeśli końcowe przecinek nie było dozwolone, a następnie, jeśli usunąć ostatni element, to będzie musiał przejść i usunąć przed nim zbyt przecinek. Wiem, że ten powód jest dość absurdalny. Ale to jest dozwolone.
Jest to bardzo korzystne dla generatorów kodu podczas generowania kodu do inicjalizacji macierzy. Mogą po prostu dodawać elementy z przecinkiem w tablicy, nie martwiąc się o to, czy to ostatni element.
Weźmy przykład:
StringBuilder array = new StringBuilder();
array.append("int[] arr = new int[] {").append("\n");
for (int i = 0; i < 10; ++i) {
array.append(i + ",").append("\n");
}
array.append("}").append("\n");
Zastanów się, czy końcowe przecinek nie było dozwolone, to w jaki sposób, że kod będzie wyglądać. Będziesz musiał obsłużyć ostatni element osobno. Po prostu działa dobrze dla generatorów kodu.
W moim scenariuszu Sonar Qube pokazuje "końcowy przecinek" w Blocker, a nie jako Ostrzeżenie. –