2012-10-23 11 views
5

Kompilacja mój kod z -Xlint Znalazłem to:obiektu do ArrayList <String> niezaznaczone rzucania

warning: [unchecked] unchecked cast 
found : java.lang.Object 
required: java.util.ArrayList<java.lang.String> 
        ArrayList<String> msgData = (ArrayList<String>)element; 

Jest to kod:

ArrayList<ArrayList<String>> msg = new ArrayList<ArrayList<String>>(); 
//add some data to msg 
Iterator i = msg.iterator(); 
while(i.hasNext()) { 

    Object element = i.next(); 
    ArrayList<String> msgData = (ArrayList<String>)element;  
} 

jak powinien obsada zrobić?

Odpowiedz

4

Twój Iterator potrzebuje typ, a także, jak to:

ArrayList<ArrayList<String>> msg = new ArrayList<ArrayList<String>>(); 
//add some data to msg 
Iterator<ArrayList<String>> i = msg.iterator(); 
while(i.hasNext()) { 
    ArrayList<String> element = i.next(); 
} 

Na marginesie, lepiej programować na interfejsy, a nie na implementacje. W ten sposób możesz napisać:

List<List<String>> msg = new ArrayList<List<String>>(); 
//add some data to msg 
Iterator<List<String>> i = msg.iterator(); 
while(i.hasNext()) { 
    List<String> element = i.next(); 
} 
2

Twój iterator powinno być coś jak

Iterator<ArrayList<String>> i = msg.iterator(); 

Btw można użyć dla-każdej pętli do niego:

for (ArrayList<String> sublist : msg) { 
    ....    
} 
1
ArrayList<ArrayList<String>> msg = new ArrayList<ArrayList<String>>(); 
//add some data to msg 
for (ArrayList<String> msgData : msg) { 
    //do something 
} 
Powiązane problemy