java - 无法分配给我创建的java数组

标签 java

我是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/

相关文章:

java - Jackson 条件反序列化

java - 改造 2.1.0 + Gson。序列化作为子类的@Body

java - 检查 Java SE 中表格单元格中的 jcheckbox 是否被选中

java - 显示存储在内部存储器中的图像

java - 将 API 类转换为继承类

java - 如果在 Java 中如果在 C++ 中

java - 集群中的静态变量访问

java - Java中如何停止线程?

java - 在 java .spring 中创建一个临时数据持有者。 hibernate

java - Apache POI 使用 HSSF 比 XSSF 快得多 - 下一步是什么?