2017-11-09 10 views
-3

問題は、関連するクラス(親)から子に作成されたarrayListにオブジェクトを追加することです。arrayList javaの末尾に追加

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

と私はメソッドを使用して、リストの末尾に値を追加/追加しようとしている:私は、親オブジェクトで作られた配列のリストを持っている

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

問題がどこにあるこれは、か要素を追加する位置を指定する必要がありますか、またはコードに別の問題がありますか?私は重複を見つけることが、1つがあるかどうit.Thanks

編集に私を指示してくださいことができませんでした

- これはエラーです:

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

GUIgroupはサブクラスであり、GUIelementはスーパークラスです。

+4

正確なエラーは何ですか? –

+0

Aはシンボルエラーを見つけることができません。具体的にはmethod.add(親) –

+0

クラスを実装して呼び出しました: 'ArrayList'? – alfasin

答えて

-2

完全なコードと詳細なエラーメッセージを添付してください。

方法については、位置(add(int index, Parent element))または指定しない(add(Parent e))のいずれかを指定できます。

cannot find symbolエラーが発生した場合は、addElementの方法はelementsの範囲を超えていなければなりません。

+0

を参照してください。ちょっと大きめですが、私はそれを行うことができます。 「範囲外」とはどういう意味ですか?私は-1に設定しない限り、カウントやインデックス変数も持っていませんか? –

+0

@ Ted.M変数 'elements'は、メソッド' addElement'でアクセスできません。 [link](http://www.geeksforgeeks.org/variable-scope-in​​-java/) –

+0

私がそれを保護するために変更した場合、それはスーパークラスがサブクラスにアクセスできることを意味しますか? –

0

親クラスの配列リスト要素を宣言している場合は、スコープの問題のためにサブクラスでアクセスされていない可能性があります。しかし、それは問題のようには見えません。

あなたの主な問題は、要素が配列リストではなく、あなたのエラーに関連付けられたadd()メソッドを持たないGUIelement型の変数だとコンパイラが思うように見えます。 GUIelementオブジェクトとして要素を取っている理由を調べてみてください。

+0

ありがとうございます。私が問題を見つけることができるかどうかを見てみましょう –

関連する問題