2012-01-13 8 views
3
public class abc<X extends Z> implements Iterable<X> 
{ 
    protected ArrayList<X> list; 

    public Iterator<X> iterator() 
    { 
     return list.iterator(); 
    } 
} 

イテレータメソッドで 'シンボルを見つけることができません'というエラーが発生しました。私は正直なところ理由がない。ジェネリックのIteratorで 'extends'

+0

正確なエラーメッセージは何ですか? –

+0

さらに詳しい情報を入力してください – JuanZe

+0

私にも手掛かりはありません。あなた自身のArrayListクラスがコアクラスをシャドーイングしていますか? –

答えて

4

正確なエラーメッセージを表示する必要がありますが、Iteratorクラス(java.util.Iterator)をインポートする必要があります。あなたがXを宣言した

また方法は、あなたがZという名前の他のクラス(XZまたはZのサブクラスに制限されている)が必要です。これは本当ですか?そうであれば、型パラメータには1文字の名前しか持たないので、名前を変更する必要があります。それが真実でなく、別のタイプのパラメータZを検討している場合は、タイプパラメータとしてZをどこかに宣言する必要があります。

+0

"Iteratorは解決できません"というエラーはありませんか? –

+0

実際にあなたは100%正しいです。私はこのクラスをとても特定していたので、このクラスをインポートする必要はありませんでした。 – Suugaku

+0

ugh!私に戻ってこない無駄な時間 –