我是Java的初学者,并且尝试使用我创建的数组
但它不会重新识别它。
有人知道这里可能缺少什么吗?
更具体地说,命令bookArray.length
会导致此错误。
Library(int maxBookCapacity){
Book bookArray[]= new Book[libraryMaxBookCapacity];
}
boolean inLibrary(Book book){
for(int i=0; i<bookArray.length; i++ ){
if (book==bookArray[i]){
return true;
}
}
return false;
}
最佳答案
bookArray
是局部变量,在定义方法之外不能访问spocan。实际上,local意味着:名称bookArray
仅在构造函数内部可用。
如果在inLibrary
中需要它,则应声明is作为封闭类中的字段:
public class Library {
private final Book[] bookArray;
public Library(int maxBookCapacity){
bookArray = new Book[libraryMaxBookCapacity];
}
public boolean inLibrary(Book book){
for(int i = 0; i < bookArray.length; i++ ){
if (book == bookArray[i]){
return true;
}
}
return false;
}
}
顺便说一句,考虑您是否真的需要将书对象与
==
运算符进行比较。关于java - 无法分配给我创建的Java数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35667983/