java 中的迭代器 NPE
Iterator NPE in java
我遇到了多个 NullPointerExceptions 的问题,我在迭代器中的 if 语句中遇到了一个,但我不知道为什么
问题块之一:
public int removeAllBooks(String author, String title){
Iterator<Book> itr=library.iterator();
int i=0;
while(itr.hasNext()){
Book book=itr.next();
if(b.getAuthor().equals(author)&&(b.getTitle().equals(title))){
itr.remove();
i++;
}
if(i>0){
return i;
}
}
return 0;
}
出于某种原因,NPE 错误指向我的 if 语句行。
谢谢。
什么是b
? declared/initialized 在哪里?您的 itr.next()
分配给了 book
变量,而不是 b
。
您的代码可能应该是:
Book book=itr.next();
if(book.getAuthor().equals(author)&&(book.getTitle().equals(title))){
我遇到了多个 NullPointerExceptions 的问题,我在迭代器中的 if 语句中遇到了一个,但我不知道为什么
问题块之一:
public int removeAllBooks(String author, String title){
Iterator<Book> itr=library.iterator();
int i=0;
while(itr.hasNext()){
Book book=itr.next();
if(b.getAuthor().equals(author)&&(b.getTitle().equals(title))){
itr.remove();
i++;
}
if(i>0){
return i;
}
}
return 0;
}
出于某种原因,NPE 错误指向我的 if 语句行。
谢谢。
什么是b
? declared/initialized 在哪里?您的 itr.next()
分配给了 book
变量,而不是 b
。
您的代码可能应该是:
Book book=itr.next();
if(book.getAuthor().equals(author)&&(book.getTitle().equals(title))){