Sintaxis de inicialización de matriz cuando no está en una declaración

Puedo escribir

AClass[] array = {object1, object2}

También puedo escribir:

AClass[] array = new AClass[2];
...
array[0] = object1;
array[1] = object2;

pero no puedo escribir:

AClass[] array;
...
array = {object1, object2};

¿Por qué Java bloquea esto?

Sé cómo solucionarlo, pero de vez en cuando sería más sencillo.

Por ejemplo

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;
        }
    }
}

Esta simple pregunta que me ha estado molestando desde que aprendí a jugar con matrices en Java.

Respuestas a la pregunta(4)

Su respuesta a la pregunta