2012-10-16 62 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」只是一個變量名。海報沒有提供什麼類型的對象存儲在他的列表中。 –

相關問題