Pole - co když deklarujeme, ale nevytvoříme?

Co kdybychom pole pouze deklarovali a nevytvořili:

Clovek[] lidi;
lidi[0] = new Clovek("Václav Klaus", Clovek.MUZ);

Toto by skončilo s běhovou chybou "NullPointerException", pole neexistuje, nelze do něj tudíž vkládat prvky!

Pokud tuto chybu uděláme v rámci metody:

public class Pokus {
    public static void main(String args[]) {
        String[] pole;
        pole[0] = "Neco";
    }
}

překladač nás varuje:

Pokus.java:4: variable pole might not have been initialized
        pole[0] = "Neco";
        ^
1 error

Pokud ovšem pole bude proměnnou objektu/třídy:

public class Pokus {
    static String[] pole;
    public static void main(String args[]) {
        pole[0] = "Neco";
    }
}

Překladač chybu neodhalí a po spuštění se objeví:

Exception in thread "main" java.lang.NullPointerException
        at Pokus.main(Pokus.java:4)