2017-11-09 11 views
-3

Das Problem, das ich habe, ist das Hinzufügen von Objekten aus einer verwandten Klasse (einem Elternteil) zu einer ArrayList, die im Kind erstellt wurde. Ich habe ein Array Liste der übergeordneten Objekte gemacht:Zum Ende der ArrayList hinzufügen java

ArrayList<Parent>elements = new ArrayList<Parent>();//creating an array list 

Und ich versuche, Werte an das Ende einer Liste anhängen/fügen Sie eine Methode:

public void addElement(Parent e) 
{elements.add(e);//has an error} 

Dies ist, wo das Problem ist, tun Ich muss die Position angeben, die ich das Element hinzufügen möchte oder hat mein Code ein anderes Problem?

Ich konnte nicht ein Duplikat zu finden, aber wenn es eine ist mir bitte zu it.Thanks

Bearbeiten direkt - das ist Fehler:

1020\Asssignment 3\GUIgroup.java [line: 14] 
Error: cannot find symbol 
    symbol: method add(GUIelement) 
    location: variable elements of type GUIelement 

GUIgroup ist die Unterklasse und GUIelement ist die Super.

+4

Was ist der genaue Fehler, den Sie bekommen? –

+0

A kann keinen Symbolfehler finden, speziell die Methode.add (übergeordnet) –

+0

Haben Sie eine Klasse implementiert und sie 'ArrayList' aufgerufen? – alfasin

Antwort

-2

Könnten Sie bitte den vollständigen Code und die detaillierte Fehlermeldung beifügen?

Wie bei der Methode add können Sie entweder die Position (add(int index, Parent element)) oder nicht (add(Parent e)) angeben.

Wenn Sie einen cannot find symbol Fehler erhalten, dann muss die Methode addElement den Rahmen von elements überschreiten.

+0

Es ist ein bisschen groß, aber ich kann das tun. Was meinst du mit "außerhalb des Rahmens"? Ich habe auch keine Zählung oder Indexvariable, es sei denn ich setze es auf -1? –

+0

@ Ted.M Die Variable 'elements' ist in Ihrer Methode' addElement' nicht verfügbar. Schau mal [link] (http://www.geeksforgeeks.org/variable-scope-in-java/) –

+0

Wenn ich es ändere, um geschützt zu sein bedeutet das, dass die Superklasse auf sie oder nur die Unterklassen zugreifen kann? –

0

Wenn Sie die Array-Listenelemente in der übergeordneten Klasse deklariert haben, besteht die Möglichkeit, dass aufgrund von Problemen mit dem Bereich nicht auf die Unterklasse zugegriffen wird. Aber das sieht nicht wie ein Problem aus.

Ihr Hauptproblem besteht darin, dass der Compiler denkt, dass Elemente keine Array-Liste sind, sondern eine Variable vom Typ GUIelement, die keine add() -Methode hat, also Ihr Fehler. Versuchen Sie einfach zu überprüfen, warum Elemente als GUIelement-Objekt verwendet werden.

+0

Danke, das scheint plausibel. Lass mich sehen, ob ich das Problem finden kann –

Verwandte Themen