PDA

View Full Version : [Java] Stack - errore metodo pop()


ka0s
17-06-2006, 11:24
Ho creato una pila che ha i seguenti campi:
private Stack<Piatto> pila;
private int numPiatti;


Il costruttore è:
public Pila(int numPiatti) {
numPiatti = numPiatti;
pila = new Stack<Piatti>();
}



Ora dovrei fare un metodo:

public void sposta(Pila pilaOrigine) {
pila.push(pilaOrigine.pop());
}

che prenda il piatto in cima alla pilaOrigine (passata come argomento) e lo metta in cima alla pila che esegue il metodo... il problema è che appunto quando provo a compilarlo non funziona il pop sull'oggetto passato come argomento...

cannot find symbol
symbol: method pop()

come posso fare?

luxorl
17-06-2006, 11:39
Ho creato una pila che ha i seguenti campi:
private Stack<Piatto> pila;
private int numPiatti;


Il costruttore è:
public Pila(int numPiatti) {
numPiatti = numPiatti;
pila = new Stack<Piatti>();
}



Ora dovrei fare un metodo:

public void sposta(Pila pilaOrigine) {
pila.push(pilaOrigine.pop());
}

che prenda il piatto in cima alla pilaOrigine (passata come argomento) e lo metta in cima alla pila che esegue il metodo... il problema è che appunto quando provo a compilarlo non funziona il pop sull'oggetto passato come argomento...

cannot find symbol
symbol: method pop()

come posso fare?

Scusa la banalità della domanda.. ma il metodo pop lo hai implementato? se si lo puoi postare? :)

ka0s
17-06-2006, 12:14
Scusa la banalità della domanda.. ma il metodo pop lo hai implementato? se si lo puoi postare? :)
uhm.. credevo che non ce ne fosse bisogno, dato che se uso il push non mi dà problemi... cmq ho scritto questo:

public Piatto pop() {
return pila.pop();
}
e ora lo compila... ma poi il metodo che ho scritto nel primo post fa quello che deve fare?

luxorl
17-06-2006, 16:58
Ah scusami non avevo capito che stessi rimplementando una pila usando la classe stack di java... il metodo pop di java non veniva riconosciuto perchè era invocato su un oggetto pila che hai costruito tu e non sull'oggetto stack che lui vuole.. come lo hai implementato adesso dovrebbe funzionare!

ka0s
17-06-2006, 22:50
Ah scusami non avevo capito che stessi rimplementando una pila usando la classe stack di java... il metodo pop di java non veniva riconosciuto perchè era invocato su un oggetto pila che hai costruito tu e non sull'oggetto stack che lui vuole.. come lo hai implementato adesso dovrebbe funzionare!
ok ho capito!! grazie mille :)
così infatti funziona ;)