Mam metodę mającą parametr tablicy jak:Pokój initializer klamra i tablica
public static void foo(int[] param) {
// Some code
}
A także mogę wywołać metodę pisząc jak
foo(new int[3]);
Normalnie, zadeklarować i zainicjować tablicę przez nowy operator lub inicjator podwójnych nawiasów klamrowych, taki jak {1, 2, 3}. Na przykład: int[] foo = new int[3];
lubint[] foo = {1, 2, 3};
.
Ale nie można użyć inicjatora podwójnego nawiasu jako parametru dla metody. {}
jest dostępna tylko do tworzenia obiektu tablicy.
Oto moje pytanie: czy są jakieś różnice między nowym operatorem a {}
? Jeśli jest, co to jest?
dzięki za komentarz, przerażające. i to jest właśnie moja uwaga. foo ({1, 2, 3}) nie działa ... –
'foo (nowy int [] {1, 2, 3})' działa – Eran
@Eran tak, ale pytanie brzmi: dlaczego int [] i = {1,2,3}; działa, ale nie foo ({1,2,3}); – Subler