0
    ListIterator litr = PuntenLijst.listIterator();

    while(litr.hasNext()){
       Object Punt = litr.next();
       Punt.print();
    }

PuntenLijst は、別のクラスのオブジェクト インスタンスを含む ArrayList です。

これで、(他のクラスの) そのオブジェクトから何かを出力するメソッド print() を作成しました。

このループで、ArrayList をループしてから、他のクラスの print() メソッドを使用しようとしましたが、機能していないようです。

誰でも私を助けることができますか?

4

5 に答える 5

3
   Object Punt = litr.next();
   Punt.print();

PuntArrayList を持っている適切なクラスにキャストする必要があります。

もちろん、クラスprint()のメソッドではありませんObject

次のような ArrayList があるとします: -

ArrayList<YourClass> PuntenLijst

呼び出しを次のように変更します: -

Object Punt = litr.next();
((YourClass)Punt).print();

または: -

   YourClass Punt = litr.next();
   Punt.print();
于 2012-10-16T20:00:23.657 に答える
2

応答として取得したオブジェクトを対応する型にキャストし、litr.next()その型のメソッドを呼び出します。

例:

     Punt puntObj =(Punt) litr.next();
       puntObj.print();
于 2012-10-16T20:00:47.990 に答える
2

メソッドPuntを含む型にキャストします。Print()

while(litr.hasNext()){
       TYPE_THAT_HAS_PRINT Punt = (TYPE_THAT_HAS_PRINT) litr.next();
       Punt.print();
    }
于 2012-10-16T20:01:40.460 に答える
0

Objectタイプを実際のオブジェクトのタイプにキャストする必要があります。

于 2012-10-16T20:03:01.653 に答える
0

for:each ループだけを使用しないのはなぜですか? PuntenLijst を正しいタイプで定義していれば、キャストは JVM によって処理されます。

于 2012-10-16T20:01:43.763 に答える