未初始化的陣列賦值語法
Java允許在宣告中對陣列進行簡潔的初始化:
AClass[] array = {object1, object2};
但是,嘗試在編譯器中使用花括號分配未初始化的陣列會產生結果error:
AClass[] array; ... array = {object1, object2}; // Error
限制原因
此限制的具體原因尚不清楚。這可能是由於語法複雜性或希望保持 Java 語法的一致性。
解決方法
雖然不那麼簡潔,但您可以使用 new初始化未初始化的陣列運算符,然後明確分配元素:
AClass[] array; ... array = new AClass[2]; ... array[0] = object1; array[1] = object2;
簡化範例
在提供的程式碼片段中使用此解決方法可以簡化陣列初始化邏輯:
public void selectedPointsToMove(cpVect coord) { if (tab == null) { if (arePointsClose(coord, point1, 10)) tab = new cpVect[]{point1}; else if (arePointsClose(point2, coord, 10)) tab = new cpVect[]{point2}; else tab = new cpVect[]{point1, point2}; } }
以上是為什麼 Java 使用大括號來防止未初始化的陣列賦值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!