【发布时间】:2016-04-07 21:32:17
【问题描述】:
我有一个类 NewClass2 和一个带有 main 方法的类。基本上我想要的是我想在 ArrayList 中保存书名、发布日期、页数和 isbn 编号,然后打印信息。
public class NewClass2 {
int pages;
String released;
String title;
int isbn;
public int getPages() {
return pages;
}
public void setPages(int pages) {
this.pages = pages;
}
public String getReleased() {
return released;
}
public void setReleased(String released) {
this.released = released;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getIsbn() {
return isbn;
}
public void setIsbn(int isbn) {
this.isbn = isbn;
}
public NewClass2(int pages, String released, String title, int isbn) {
this.pages = pages;
this.released = released;
this.title = title;
this.isbn = isbn;
}
public NewClass2() {
}
public void printInfo(){
System.out.println("The book has "+pages+" pages and was released on "+released+" and is called "+title);
}
}
还有主类:
public class mainClass {
public static void main(String[] args){
ArrayList<NewClass2> listTest = new ArrayList<>( );
listTest.add(new NewClass2( 200,"Book 1", "8.9.14",2222) );
listTest.add(new NewClass2( 200,"Book 2", "1.2.04",5555) );
listTest.add(new NewClass2( 200,"Book 3", "5.4.06",6666) );
listTest.add(new NewClass2( 200,"Book 4", "7.4.13",7777) );
listTest.add(new NewClass2( 200,"Book 5", "2.2.03",8888) );
NewClass2 book = new NewClass2(listTest);
book.printInfo();
}
}
IDE 告诉我
NewClass2 book = new NewClass2(listTest);
错了,为什么?以及如何修复它??
【问题讨论】:
-
看看你声明的类构造函数——然后看看你调用构造函数的方式——它们不匹配。
-
有两个 NewClass2 构造函数。一个不带参数,另一个带一个 int、String、String 和 int:
public NewClass2(int pages, String released, String title, int isbn)。您正在调用一个不存在的构造函数并且只传入一个字符串。那是行不通的。您要么必须调用不带参数的默认构造函数,要么传入 int、String、String 和 int。 -
请注意,这一切都应该在您的 java 教科书或教程的构造函数部分中得到很好的解释。
-
但是我不是在我的 ArrayList 中传递了一个 int、String、String、int 吗?
-
怎么回事错?只是一个友好的提示,您可能需要阅读此页面:The How-To-Ask Guide,这样您就可以始终确定确保您的问题易于回答且尽可能清晰。请务必包括您为解决遇到的问题所做的任何努力,以及尝试这些修复时发生的情况。也不要忘记您的显示代码和任何错误消息!