gpt4 book ai didi

java - 数组列表和使用迭代器

转载 作者:行者123 更新时间:2023-11-30 06:22:07 25 4
gpt4 key购买 nike

我试图从 Java 数组列表中删除一个元素,但出现错误

"Exception in thread "main" java.lang.ClassCastException: java.util.ArrayList$Itr cannot be cast to newpackage.Book";

此错误的原因是什么以及如何修复它?

    public void removeBook(){
int i=Integer.parseInt(JOptionPane.showInputDialog("Pleanse input isbn to be removed"));
Iterator b=books.iterator();
while(b.hasNext()){
if(i==((Book)b).ISBN)b.remove();
}
}

谢谢。

最佳答案

bIterator ,不是Book 。您应该调用b.next()获取当前Book 。并且您应该使用参数化类型 - Iterator<Book> - 避免需要将当前元素强制转换为 Book .

public void removeBook() {
int i=Integer.parseInt(JOptionPane.showInputDialog("Pleanse input isbn to be removed"));
Iterator<Book> b=books.iterator();
while(b.hasNext()) {
if(i == b.next().ISBN)
b.remove();
}
}

另一个建议,而不是访问 ISBN直接属性,使用 getter - getISBN() .

关于java - 数组列表和使用迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47903503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com