2016-04-15 11 views
0

Object ReiterのA(getA())をイテレータで印刷したかったが、動作するものが見つからないようだ。何とか助けてください。 。あなたのwhileループでLinkedListのIteratorでオブジェクトの属性を印刷する - Java

public static void main (String args[]){ 

    LinkedList<Reiter> reiter = new LinkedList<Reiter>(); 

    reiter.add(new Reiter(55)); 
    reiter.add(new Reiter(30)); 
    reiter.add(new Reiter(70)); 
    reiter.add(new Reiter(35)); 
    reiter.add(new Reiter(60)); 
    reiter.add(new Reiter(45)); 
    reiter.add(new Reiter(65)); 
    reiter.add(new Reiter(40)); 
    reiter.add(new Reiter(25)); 
    reiter.add(new Reiter(50)); 

    Iterator it = reiter.iterator(); 

    while(it.hasNext()){ 

     System.out.print(it.next()); 
    } 

} 

class Reiter{ 

    int a; 
    public Reiter(int a){ 
     this.a = a; 
    } 
    public int getA(){ 
     return a; 
} 

答えて

3

に変更する必要があります。返されたオブジェクトをReiterにキャストするか、Iteratorの型引数としてReiterを入力して、Iteratorの汎用形式を使用することができます。

Iterator<Reiter> it = reiter.iterator(); 

これは、あなたがReiterとして返されたオブジェクトを処理し、getA()を呼び出すことができるようになります。

while(it.hasNext()){ 
    System.out.print(it.next().getA()); 
} 
+0

ありがとう、今それは動作します。私はReiterを型引数として提供できることを知らなかった。 – iKuraiko

+0

この質問の質問者として、あなたの裁量で、あなたはあなたの質問に最もよく答えると思う[ちょうど1つの回答を受け入れる](http://stackoverflow.com/help/someone-answers)かもしれません。 – rgettman

1

あなたはit.next()を印刷する必要がある
while(it.hasNext()){ 
    System.out.print(it.next()); 
} 

下駄();

単にit.next()を印刷すると、オブジェクトが印刷されます。

ので、ラインはあなたがObject秒を返しますIteratorの生の形式を使用している

System.out.print(it.next().getA()); 
+0

生の 'Iterator'は' Object'sを返します。したがって、 'getA()'メソッドは利用できません。 – rgettman

+0

あなたは正しく私はジェネリック/キャスティングの欠如に注意を払わなかった –

+0

まだありがとう、それは多くの助けた。その間違いをもう一度しないでください。 – iKuraiko

関連する問題