我的问题是我需要在Vector内容中找到对象,以便我可以将它们打印到面板.但是,当我使用此代码迭代向量时,它不会到达object = it.next()行.因此,当我尝试调用对象paint方法时,它会给我一个空指针,因为对象未初始化.
public PaintingPanel(Vector contents){ this.contents = contents; Iterator it = contents.iterator(); while(it.hasNext()){ if(it.next().equals(ball)){ ball = (Ball) it.next(); } else if (it.next().equals(bricks)){ bricks.add((Brick) it.next()); } else if (it.next().equals(paddle)){ paddle = (Paddle) it.next(); }
fge.. 5
一Iterator
会快一个值,每次你打电话.next()
.在你的循环中,你前进三次,因此吞下三个条目!
改为:
Object element; while (it.hasNext()) { element = it.next(); if (element.equals(ball)) // etc etc }
此外,你不应该使用Vector
.不是在2014年.
使用List
where X
是正确的类型!
最后,你似乎还有其他问题,因为你的问题是"它没有到达object = it.next()行".需要更多代码!鉴于你的if
谓词的陌生感,这个问题看起来比那更基本,甚至.
特别是,如果它没有任何更多的元素要生成,你会点击NullPointerException
"而不是"a NoSuchElementException
这就是Iterator
抛出的东西.
一Iterator
会快一个值,每次你打电话.next()
.在你的循环中,你前进三次,因此吞下三个条目!
改为:
Object element; while (it.hasNext()) { element = it.next(); if (element.equals(ball)) // etc etc }
此外,你不应该使用Vector
.不是在2014年.
使用List
where X
是正确的类型!
最后,你似乎还有其他问题,因为你的问题是"它没有到达object = it.next()行".需要更多代码!鉴于你的if
谓词的陌生感,这个问题看起来比那更基本,甚至.
特别是,如果它没有任何更多的元素要生成,你会点击NullPointerException
"而不是"a NoSuchElementException
这就是Iterator
抛出的东西.