Java 的陣列初始化語法根據是在聲明中使用還是在賦值中使用而有所不同。
宣告陣列時,可以使用陣列文字初始化其元素:
AClass[] array = {object1, object2};
在聲明之外,可以使用new運算子初始化數組,後跟元素計數和後續賦值:
AClass[] array = new AClass[2]; array[0] = object1; array[1] = object2;
但是,嘗試將數組文字分配給未聲明的陣列變數是被禁止的:
AClass[] array; ... array = {object1, object2}; // Blocked by Java
Java 施加此限制的原因可能不會立即顯而易見。
作為解決方法,可以使用以下語法使用:
AClass[] array; ... array = new AClass[]{object1, object2};
此方法將陣列建立和初始化合併到一條語句中,同時遵守Java 的語法規則。
例如,考慮以下程式碼snippet:
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; } } }
如果沒有解決方法,程式碼將需要額外的語句來初始化tempTab,然後再分配它到選項卡。
以上是Java 的陣列賦值語法在聲明內部和外部有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!