Ho smanettato un pò e sono arrivato a togliere, non so se per pura casualità, l'errore di incompatible types, ora compare questo messaggio strano:
Note: C:\..\..\.\.\.\\SLList.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Process completed.
Questo è il codice allo stato attuale:
codice:
public class Node <A>
{
public A chiave;
public Node next;
public Node(A el)
{
chiave = el;
next = null;
}
public Node(A el, Node ptr)
{
chiave = el;
next = ptr;
}
}
public class List <A>
{
protected Node<A> head;
public List()
{
head = null;
}
public void add(A el)
{
head = new Node<A>(el,head);
}
public A deleteHead()
{
Node<A> el = head;
head = head.next;
return el.chiave;
}
}
public class Stack <A>
{
protected List<A> lista;
public Stack()
{
lista = new List<A>();
}
public void push(A el)
{
lista.add(el);
}
public A pop()
{
return lista.deleteHead();
}
}
Comunque sia è il metodo deleteHead() della List il codice critico, è anche l'unico col return, quindi mi sa che ho poco chiaro come si usa un metodo parametrico.