我是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
是一个局部变量,spo 不能在定义方法之外访问。事实上,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/