Sto provando a creare una matrice di oggetti come definito da una sottoclasse (penso che sia la terminologia corretta). Posso vedere che la domanda è ricorrente, ma l'implementazione è ancora problematica.Come creare una matrice di oggetti in Java
Il mio codice
public class Test {
private class MyClass {
int bar = -1;
}
private static MyClass[] foo;
public static void main(String args[]) {
foo = new MyClass[1];
foo[0].bar = 0;
}
}
dà l'errore
Exception in thread java.lang.NullPointerException "principale".
Nel tentativo di razionalizzare, ho rotto giù a termini più semplici:
public class Test {
private static int[] foo;
public static void main(String args[]) {
foo = new int[1];
foo[0] = 0;
}
}
che sembra funzionare. Non vedo la differenza tra i miei due esempi. (Capisco che il mio primo è inutile, ma MyClass alla fine conterrà più dati.)
Sono abbastanza sicuro che la domanda è stata chiesta here ed è molto ben risposto. Credo di aver implementato la soluzione:
MyClass[] foo = new MyClass[10];
foo[0] = new MyClass();
foo[0].bar = 0;
ma la seconda linea delle questioni di cui sopra l'errore
Nessuna istanza allegando del tipo di test è accessibile.
Capisco che ArrayList sarebbe una soluzione, ma sto cercando di cogliere i concetti sottostanti.
NB - Potrebbe essere utile sapere che, pur essendo molto a proprio agio con la programmazione in generale, Java è il mio primo tuffo nella programmazione orientata agli oggetti.
Il chapeter ab di java tutorial out [classi annidate] (http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html) potrebbe essere una lettura interessante sulle basi delle classi interne. – Alderath