2012-10-16 58 views
0
ListIterator litr = PuntenLijst.listIterator(); 

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

PuntenLijst是一个包含来自另一个类的对象实例的ArrayList。从ArrayList中的另一个对象类中使用方法

现在我已经做了一个print()方法来打印出该对象(其他类)的东西。

有了这个循环,我尝试循环访问ArrayList,然后使用其他类中的print()方法,但它似乎并没有工作。

有人可以帮我吗?

回答

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

您需要将您的Punt转换为适当的类,其中您有ArrayList。

当然print()的是不是Object类的方法

假设你有ArrayList中是这样的: -

ArrayList<YourClass> PuntenLijst 

更改您的调用到: -

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

或者: -

YourClass Punt = litr.next(); 
    Punt.print(); 
+0

如果声明是'ArrayList ',则不需要转换。只是做'YourClass Punt = litr.next();' –

+0

@ColinD噢。我自己忘了我以这种方式假设了ArrayList。也许是 –

2

将您获得的对象作为litr.next()的响应转换为该类型的相应类型和调用方法。

实施例:

 Punt puntObj =(Punt) litr.next(); 
     puntObj.print(); 
2

Punt铸造到包含Print()方法的类型。

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

为什么不只是用于:每个循环?如果您使用正确的类型定义了PuntenLijst,则该转换由JVM负责。

0

您需要将Object类型转换为您的实际对象的类型。

+0

。在提供的代码片段中,“Punt”只是一个变量名。海报没有提供什么类型的对象存储在他的列表中。 –

相关问题