2016-11-27 17 views
1

ArrayListの型のitertorを記述しようとしています(Numberはクラスです)。パラメータ化された型のJavaイテレータ

私ははほとんどそれを行うことができますが、私はエラーを取得する:これは、クラス定義

public class History implements Iterable<ArrayList<Number>> { 

ある

これは私が反復処理したいタイプの定義です:

private ArrayList<Number> spins = new ArrayList<Number>(); 

...イテレータ関数は次のとおりです。

@Override 
    public Iterator<ArrayList<Number>> iterator() { 
     Iterator<ArrayList<Number>> it = new Iterator<ArrayList<Number>>() { 

      private int currentIndex = 0; 

      @Override 
      public boolean hasNext() { 
       return currentIndex < gethistorySize() && spins.get(currentIndex) != null; 
      } 

      @Override 
      public ArrayList<Number> next() { 
       return spins.get(currentIndex++); // ** ERROR ** 
      } 

      @Override 
      public void remove() { 
       throw new UnsupportedOperationException(); 
      } 
     }; 
     return it; 
    } 

私は私が手にエラーがあるマークされた行でエラー** ERROR **

を取得:この行 で

複数のマーカー - 式の型は配列型でなければなりませんが、それは解決ArrayLisyへ - 型が一致しません:NumberからArrayListに変換できません

ここで何を返すのかよくわかりません。

誰でも手伝いできますか?

Thxを

+0

複数のマーカー - 式の型が配列型でなければなりませんが、それは 型の不一致をArrayLisyすることを決議: Graham

+0

をArrayListにナンバーからCONVERすることはできません同じ問題を持つ人々ができるようになるので、エラーメッセージを追加することができますあなたの質問と可能な回答を見つけるには? – Pshemo

+0

上記を完了しました。残念ですが、実行時エラーではありませんが、「スクリーンエラー」はありません。 – Graham

答えて

1

ArrayList<Number>を返すspins.get(currentIndex++)ためには、spinsの種類はList<ArrayList<Number>>、ないArrayList<Number>でなければならないであろう。

spinsの種類は何が必要かもしれない、正しい場合Iterator<Number>、ないIterator<ArrayList<Number>>(およびHistoryIterable<Number>を実装する必要があります)を実装することです。

+0

Thnak - 私はこれらの提案を試してみます – Graham

0

変更

 @Override 
     public ArrayList<Number> next() { 
      return spins.get(currentIndex++); // ** ERROR ** 
     } 

 @Override 
     public Number next() { 
      return spins.get(currentIndex++); // ** ERROR ** 
     } 

に戻り値の型は、したがって、コンパイルエラーに間違っています。 next()メソッドを呼び出すと、各NumberオブジェクトをAn ArrayList<Number>に反復します。このライン で

+0

Thansk - 情報のみ - 元のエラーを取り除きます変更された行に(類似の)エラーが発生する – Graham

+0

@Graham [リンク](http://codereview.stackexchange.com/questions/48109/simple-example-of-an-iterable-and-an-iterator-in -java)この例のいくつかを試してください –

+0

ありがとうございました。タイプをに変更しました。 – Graham

関連する問題