对不起,如果这是一个愚蠢的问题,或者如果我没说错,我会尽力解释问题所在。
我应该创建一个书类,用于存储书名,ISBN,价格和作者姓名。由于一本书可能有多个作者,我应该为这个字段创建一个Array或ArrayList。一切似乎都运行正常但是当我将Array字段初始化为String时,IDE会显示错误。我在这里错过了什么吗?有谁知道如何解决这个问题?
这是我的代码:
public class Books {
private String bookName;
private String ISBN;
private int price;
private String [] authorsList;
public Books (String bookName, String ISBN, int price, String[] authorsList){
this.bookName = bookName;
this.ISBN = ISBN;
this.price = price;
this.authorsList = authorsList;
}
public String toString(){
return "Book title: " + bookName +
"\nISBN: " + ISBN +
"\nPrice: " + price +
"\nAuthor: " + authorsList;
}
}
public static void main(String[] args) {
Books book1 = new Books("Harry Potter","12345",10,"J. K. Rowling");
System.out.println(book1.toString());
}
}
答案 0 :(得分:1)
如果您编写System.out.println,就可以看到数组
System.out.println(book1.bookName + "\n" + book1.ISBN+"\n" + book1.price+"\n" + Arrays.toString(authorsList));
你现在看不到它,因为它是一个数组,如果你这样写System.out.println(book1.toString());
,java只显示它的位置。这就是为什么你看到这样的东西[Ljava.lang.String; @ 2a139a55
或者请将你的toString方法改为现在显示 实际上这种方式更好:
public String toString(){
return "Book title: " + bookName +
"\nISBN: " + ISBN +
"\nPrice: " + price +
"\nAuthor: " + Arrays.toString(authorsList);
}
public static void main(String[] args) {
Books book1 = new Books("Harry Potter","12345", 10, new String[]{"J. K. Rowling"});
System.out.println(book1.toString());
}
答案 1 :(得分:0)
用它来初始化你的数组:
new String[]{"J. K. Rowling"};
您在构造函数中传递String而不是Array。