java - 对象到 ArrayList<String> 未经检查的转换

标签 java arraylist iterator

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

Actor 应该如何完成?

最佳答案

您的迭代器也需要一个类型,如下所示:

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

附带说明一下,最好针对接口(interface)而不是实现进行编程。因此,你会写:

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

关于java - 对象到 ArrayList<String> 未经检查的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13028563/

相关文章:

java - 如何在java程序中设置JVM参数值

java - 为什么我的 JScrollpane 没有更新删除更改,尽管有 validate() 和 repaint()

java - 当我们说 ArrayList 不同步时,这意味着什么?

java - 如何使用java导出文件?

c++ - 返回 C++ 迭代器引用

java - 不能从 Collectors.toMap 中的静态上下文引用非静态方法

java - 创建一个对象数组类型的ArrayList

python - __next__ 在生成器和迭代器中,什么是方法包装器?

python - 在Python迭代器中保持相同的值

java - 查看页面 : Refresh fragment views on user swipe