簡體   English   中英

對象到ArrayList <String> 未經檢查的演員

[英]object to ArrayList<String> unchecked cast

使用-Xlint編譯我的代碼我發現了這個:

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

這是代碼:

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;     
}

演員怎么辦?

你的迭代器也需要一個類型,如下所示:

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();
}

另外,最好是編程接口,而不是實現。 因此,你寫道:

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();
}

你的迭代器應該是這樣的

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

順便說一句,你可以使用for-each循環:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM