编译器错误:需要数组,但找到了String

时间:2015-11-28 04:02:35

标签: java

获取错误:需要数组,但找到了String。 我检查并重新检查,但发现我的代码没有任何问题。出了什么问题? 一年前我已经介绍过java,但只有当我开始研究开发图书馆管理系统的项目时,才意识到我的知识存在严重缺陷。

import java.util.Scanner;

public class library{
book[] bk = new book[5];

public static void main(String[] args){
    Scanner input = new Scanner(System.in);
    library mainObj = new library();

    mainObj.addBooks();
}

public void addBooks(){
    Scanner input = new Scanner(System.in);

    System.out.print("Book Name: ");
    String bk = input.nextLine();

    System.out.print("Author Name: ");
    String aun = input.nextLine();

    System.out.print("Id: ");
    String i = input.nextLine();

    bk[book.getTotalBookCount()] = new book(bk, aun, i);
}

}

class book{
String name;
String authorName;
String id;
static int totalBookCount = 0;

book(String bkn, String aun, String i){
    name = bkn;
    authorName = aun;
    id = i;
    totalBookCount++;

    System.out.println("Book Added!! ");
}

}

3 个答案:

答案 0 :(得分:2)

  

String bk = input.nextLine();

您正在使用该变量隐藏book[] bk。要么更改其中一个的名称,要么改为使用它。

  

this.bk [book.getTotalBookCount()] =新书(bk,aun,i);

答案 1 :(得分:1)

您正在使用bk变量两次。一旦在顶部同时在第三行声明数组book[] bk = new book[5];和一次在 addBooks函数 String bk = input.nextLine();中。

答案 2 :(得分:1)

您已经为两种不同的类型使用了is_numeric()两次,一种用于书籍数组,另一种用于字符串。在这些类型的碰撞中,本地类型具有优先权,

bk