类型中的方法不适用于参数
Method in the type is not applicable to arguments
我是一个正在学习基础 class 创建教程的新手,我得到了以下说明。
1) Create a new class called Book.
2) Create fields for title, author, numPages, and isbn.
3) Create a method called toString that appropriately describes the book.
4) In the file, BookRunner.java:
a) Declare two book variables
b) Instantiate two book objects and set their fields.
c) Print descriptions of the book objects using their toString methods.
所以我一直按照说明使用两个classes,你可以看到下面的代码
public class Book {
public String title;
public String author;
public String numPages;
public String isbn;
public void toString(String bookName) {
String description = "Title:" + title + "Author"+ author + "Num. of pages" + numPages + "ISBN" + isbn;
System.out.println(description);
}
public class Ex1_BookRunner {
public static void main(String[] args) {
Book firstBook;
Book secondBook;
firstBook = new Book();
secondBook = new Book();
firstBook.title = "One Piece";
firstBook.author = "Oda-Sensei";
firstBook.numPages = "100";
firstBook.isbn = "123456";
secondBook.title = "Life of Megan Fox";
secondBook.author = "Micheal Bay";
secondBook.numPages = "200";
secondBook.isbn = "098765";
toString(firstBook);
toString(secondBook);
}
}
我的代码在调用方法 toString
.
的最后两行之前没有显示任何错误
我收到以下错误
The method toString() in the type Object is not applicable for the arguments (Book)
我是不是在我的方法声明中的某个地方犯了一些基本错误?我查看了关于 SO 的其他帖子,提出了同样的问题,但我无法理解所给出的解释,因为它们主要涵盖了我还没有学过的代码语法。
感谢任何帮助:)
试试 firstBook.toString();
- 这会产生一个字符串,如果你想看到它,你可以做类似 System.out.println(firstBook.toString());
的事情。该错误告诉您没有将书作为参数的 toString 方法。您想要的是调用 toString() 方法 on 您创建的 Book 实例。
将它们更改为:
firstBook.toString();
secondBook.toString();
您可以在已创建的 firstBook 和 secondBook 上调用默认的 .toString() 方法。但是由于您没有定义将 Book 对象作为参数的 toString 方法,因此将 Book 对象传递给 toString() 会产生上述错误。
事实上,您的错误行解释得很清楚:
The method toString() in the type Object is not applicable for the arguments (Book)
试试我们的 toString 方法
public String toString() {
String discription= "Title:" + title + "Author"+ author + "Num. of pages" + numPages + "ISBN" + isbn;
return discription;
}
并且您在 main 方法中的打印语句也应该如下所示
System.out.println(firstBook.toString());
System.out.println(secondBook.toString());
希望对你有所帮助
同一个class
中有两个publicclass
public class Book {
//your codes or variables
}
public class Ex1_BookRunner {
//your code or variables
}
试试这个
我是一个正在学习基础 class 创建教程的新手,我得到了以下说明。
1) Create a new class called Book.
2) Create fields for title, author, numPages, and isbn.
3) Create a method called toString that appropriately describes the book.
4) In the file, BookRunner.java:
a) Declare two book variables
b) Instantiate two book objects and set their fields.
c) Print descriptions of the book objects using their toString methods.
所以我一直按照说明使用两个classes,你可以看到下面的代码
public class Book {
public String title;
public String author;
public String numPages;
public String isbn;
public void toString(String bookName) {
String description = "Title:" + title + "Author"+ author + "Num. of pages" + numPages + "ISBN" + isbn;
System.out.println(description);
}
public class Ex1_BookRunner {
public static void main(String[] args) {
Book firstBook;
Book secondBook;
firstBook = new Book();
secondBook = new Book();
firstBook.title = "One Piece";
firstBook.author = "Oda-Sensei";
firstBook.numPages = "100";
firstBook.isbn = "123456";
secondBook.title = "Life of Megan Fox";
secondBook.author = "Micheal Bay";
secondBook.numPages = "200";
secondBook.isbn = "098765";
toString(firstBook);
toString(secondBook);
}
}
我的代码在调用方法 toString
.
我收到以下错误
The method toString() in the type Object is not applicable for the arguments (Book)
我是不是在我的方法声明中的某个地方犯了一些基本错误?我查看了关于 SO 的其他帖子,提出了同样的问题,但我无法理解所给出的解释,因为它们主要涵盖了我还没有学过的代码语法。
感谢任何帮助:)
试试 firstBook.toString();
- 这会产生一个字符串,如果你想看到它,你可以做类似 System.out.println(firstBook.toString());
的事情。该错误告诉您没有将书作为参数的 toString 方法。您想要的是调用 toString() 方法 on 您创建的 Book 实例。
将它们更改为:
firstBook.toString();
secondBook.toString();
您可以在已创建的 firstBook 和 secondBook 上调用默认的 .toString() 方法。但是由于您没有定义将 Book 对象作为参数的 toString 方法,因此将 Book 对象传递给 toString() 会产生上述错误。
事实上,您的错误行解释得很清楚:
The method toString() in the type Object is not applicable for the arguments (Book)
试试我们的 toString 方法
public String toString() {
String discription= "Title:" + title + "Author"+ author + "Num. of pages" + numPages + "ISBN" + isbn;
return discription;
}
并且您在 main 方法中的打印语句也应该如下所示
System.out.println(firstBook.toString());
System.out.println(secondBook.toString());
希望对你有所帮助
同一个class
中有两个publicclass public class Book {
//your codes or variables
}
public class Ex1_BookRunner {
//your code or variables
}
试试这个