2016-04-21 7 views
1

Mein Problem ist, mit Link-< (E)> ist, sagt:Stapel Linked Implementierung Import

"sun.awt.image.ImageWatched.Link keine Parameter übernehmen;"

Ich wurde importiert sun.awt.image.ImageWatched.Link; Was ist mit dem Code falsch? Wie mache ich es richtig? Hier

ist der Code:

public class LStack<E> implements Stack<E> { 
private Link<E> top=; 
private int size; 

public LStack(){ 
    top = null; 
    size = 0; 
} 

public LStack(int size){ 
    top = null; 
    size = 0; 
} 

@Override 
public void clear(){ 
    top = null; 
    size = 0; 
} 

@Override 
public void push(E it){ 
    top = new Link<E>(it, top); 
} 

@Override 
public E pop(){ 
    assert top != 0 : "Stack is empty"; 
    E it = top.element(); 
    top = top.next(); 
    size--; 
    return it; 
} 

@Override 
public E topValue(){ 
    assert top != 0 : "Stack is empty"; 
    return top.element(); 
} 

@Override 
public int length(){ 
    return size; 
} 
} 

Antwort

0

Sie auf Link<E> beziehen, als ob Link generisch ist, aber es ist nicht.

Ich denke, die eigentliche Frage ist: Warum versuchen Sie sun.awt.image.ImageWatched.Link dafür zu verwenden? Es scheint für einen bestimmten Zweck gedacht zu sein, der nicht mit Ihrem Zweck übereinstimmt.

Ich denke, Sie sollten Ihre eigene (generische) Link<E> Klasse definieren. Alles, was es tun muss, ist eine Sache des Typs E und eine next Referenz zu halten.

+0

können Sie bitte Schritt für Schritt erklären? –

+0

Wenn Sie meinen, kann ich bitte Ihren Code für Sie schreiben: Nein, so funktioniert Stack Overflow im Allgemeinen nicht. Aber wenn es etwas Bestimmtes gibt, das ich nicht klar genug geschrieben habe, kannst du es mir gerne stellen. –

+0

bedeuten "halten Sie eine Sache von Typ E und eine nächste Referenz"? –