Ciao a tutti!
Qualcuno saprebbe dirmi perché il seguente programma non funziona lanciandomi un eccezione?
class TestaPilaList{
public static void main(String[] op ){
PilaList list = new PilaList();
for(int i = 0; i < 12; i++){
list.aggiungiElemento(Integer.toString(i));
list.stampa();
}
for(int i = 0; i < 6; i++){
list.eliminaElemento();
list.stampa();
}
}
}
import java.util.ArrayList;
class PilaList{
public PilaList(){
ArrayList<String> pila = new ArrayList<String>();
}
public void eliminaElemento(){
pila.remove(pila.size()-1);
}
public void aggiungiElemento(String elemento){
pila.add(elemento);
}
public void stampa(){
for(int i = 0; i < pila.size(); i++){
System.out.print("|"+pila.get(i)+"|");
}
System.out.println("");
}
private ArrayList<String> pila;
}
eccezione:
java.lang.NullPointerException
at PilaList.aggiungiElemento(PilaList.java:10)
at TestaPilaList.main(TestaPilaList.java:5)
mentre modificando la costruzione dell'oggetto pila come di seguito funziona...
class TestaPilaList{
public static void main(String[] op ){
PilaList list = new PilaList();
for(int i = 0; i < 12; i++){
list.aggiungiElemento(Integer.toString(i));
list.stampa();
}
for(int i = 0; i < 6; i++){
list.eliminaElemento();
list.stampa();
}
}
}
import java.util.ArrayList;
class PilaList{
public PilaList(){
pila = new ArrayList<String>(); /* <-- MODIFICA, PRIMA ERA: ArrayList<String> pila = new ArrayList<String>(); */
}
public void eliminaElemento(){
pila.remove(pila.size()-1);
}
public void aggiungiElemento(String elemento){
pila.add(elemento);
}
public void stampa(){
for(int i = 0; i < pila.size(); i++){
System.out.print("|"+pila.get(i)+"|");
}
System.out.println("");
}
private ArrayList<String> pila;
}
vi prego, è tutto il pomeriggio che sto impazzendo! La stessa cosa mi è accaduta su un programma simile solo con gli array classici!
Grazie

Rispondi quotando