Sintaks permulaan tatasusunan Java berbeza bergantung pada sama ada ia digunakan dalam pengisytiharan atau tugasan.
Apabila mengisytiharkan tatasusunan, tatasusunan literals boleh digunakan untuk memulakan elemennya:
AClass[] array = {object1, object2};
Di luar pengisytiharan, tatasusunan boleh dimulakan menggunakan operator baharu, diikuti dengan kiraan elemen dan tugasan seterusnya :
AClass[] array = new AClass[2]; array[0] = object1; array[1] = object2;
Walau bagaimanapun, percubaan untuk menetapkan tatasusunan literal kepada pembolehubah tatasusunan yang tidak diisytiharkan adalah dilarang:
AClass[] array; ... array = {object1, object2}; // Blocked by Java
Sekatan ini dikenakan oleh Java atas sebab yang mungkin tidak dapat dilihat dengan serta-merta.
Sebagai penyelesaian, sintaks berikut boleh digunakan:
AClass[] array; ... array = new AClass[]{object1, object2};
Pendekatan ini menggabungkan penciptaan tatasusunan dan permulaan ke dalam satu pernyataan sambil mematuhi peraturan sintaks Java.
Sebagai contoh, pertimbangkan coretan kod berikut:
public void selectedPointsToMove(cpVect coord) { if (tab == null) { if (arePointsClose(coord, point1, 10)) { cpVect[] tempTab = {point1}; tab = tempTab; } else if (arePointsClose(point2, coord, 10)) { cpVect[] tempTab = {point2}; tab = tempTab; } else { cpVect[] tempTab = {point1,point2}; tab = tempTab; } } }
Tanpa penyelesaian, kod memerlukan penyataan tambahan untuk memulakan tempTab sebelum menetapkannya pada tab.
Atas ialah kandungan terperinci Bagaimanakah Sintaks Tugasan Array Java Berbeza Di Dalam dan Di Luar Pengisytiharan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!