(Java)迭代Vector <String []>,为什么.next()是一个Object,而不是一个String []?

Xon*_*ron 1 java iterator casting

在Java中,当你迭代器过Vector<String[]>,为什么是.next()一个Object需要被强制转换为String[],使用每个元素作为String[]

编辑:

这是我的代码:

    Iterator itr = getIdAndName().iterator();
    while( itr.hasNext() ) {
        String[] stringArray = (String[])itr.next();
        String id = stringArray[0];
        String name = stringArray[1];
        System.out.println(id + ": " + name);
    }
Run Code Online (Sandbox Code Playgroud)

getIdAndName()回报Vector<String[]>.

Mar*_*ers 13

事实并非如此.我唯一能想到的是你没有输入你的迭代器,即你这样做:

Vector<String[]> vector;
Iterator it = vector.iterator();
Object obj = it.next();
Run Code Online (Sandbox Code Playgroud)

当你应该做的时候:

Vector<String[]> vector;
Iterator<String[]> it = vector.iterator();
String[] next = it.next();
Run Code Online (Sandbox Code Playgroud)

好吧,在大多数情况下,你实际上并不直接需要迭代器,所以你可以使用:

Vector<String[]> vector;
for (String[] element : vector) {
    //...
}
Run Code Online (Sandbox Code Playgroud)