To nie powinno być dziwne myśleć jako pustą tablicę jako coś normalnego. Istnieje bardzo podobny przypadek, w którym cały czas mamy do czynienia z pustymi tablicami.
List<String> names = new ArrayList<String>();
names
jest obecnie pustą tablicą. Czy nie byłoby dziwnie zawsze deklarować tablice z co najmniej pierwszym elementem?
List<String> names = new ArrayList<String>(Arrays.asList("John"));
Alternatywą new int[0]
jest ważne składni będzie ustawić tablicę null
gdy pierwszy element nie jest dostępny. W tym świecie oczekiwano by, że przed sprawdzeniem tablicy będziemy regularnie sprawdzać, czy nie ma ona wartości null
.
int[] nums = null; // Because empty primitive arrays are "weird"
//typical for-each loop
if(nums != null){
for(int x: nums){
// do something
}
}
//typical for loop
if(nums != null){
for(int c = 0; c < nums.length; c++){
// do something
}
}
Bez pustych tablic, regularne pętli rzucał NullPointerException
wszystko czas. Wszystko to powiedziawszy, dziwne jest używanie new int[0][5]
zamiast new int[0][]
. Nie sądzę, że to godne błąd składni, ale myślę, że zasługuje jeden z nich z IDE:
Ponieważ pusta tablica jest vallid? – NickL
Jeszcze prostsze: 'int [] a = new int [0];' –