Salve a tutti. Sto cercando di fare qualche classe per capire come usare una delle novità di Java 1.5, il polimorfismo parametrico.
Ho pensato di fare uno stack, siccome questa struttura dati è logica, mi serve l'aiuto di una lista e quindi di nodi, ho scritto questo codice:
Non so assolutamente se le interfacce dei metodi e le dichiarazioni delle variabili sono corrette, il compilatore dice che ci sono 2 errori:codice:public class Node <A> { public A chiave; public Node next; public Node() { next = null; } public Node(A el) { chiave = el; next = null; } public Node(A el, SLLNode ptr) { chiave = el; next = ptr; } } public class List <A> { protected Node head; public List() { head = null; } public void add(A el) { head = new Node(el,head); } public A deleteHead() { A el = head.chiave; head = head.next; return el; } } public class Stack <A> { protected List lista; public Stack() { lista = new SLList(); } public void push(A el) { lista.add(el); } public A pop() { return lista.deleteHead(); } }
incompatible types nella prima riga del deleteHead() nella List e ancora incompatible types nell'unica riga del metodo pop() di Stack.
Un'altra cosa se possibile:
non mi è chiaro in che caso si usano metodo la cui interfaccia è per esempio
oppure questocodice:public void push(A elem) //A inteso come tipo placeholder
Cioè non capisco i metodi parametrizzati come si differenziano dai non parametrizzati, non dovrebbero essere tutti del tipo della seconda riga? Ho provato sullo stack ma dà altri errori.codice:public <A> A metodo()
Ringrazio chiunque possa risolvermi un pò di questi dubbi![]()

Rispondi quotando
