【发布时间】:2015-07-01 08:40:18
【问题描述】:
我有一个似乎无法修复的编译错误。它给我的信息是类型不匹配:无法从对象转换为列表。 下面我添加了它说错误所在的方法。
// Read books from file
public void readBooksFromFile() {
if(booksDatabase != null && !booksDatabase.isEmpty()) {
try (ObjectInputStream input = new ObjectInputStream(new FileInputStream(booksDatabase))) {
Books = input.readObject(); // Error here
} catch (IOException e) {
e.printStackTrace();
}
}
}
第二种方法
public ListBook(String booksDatabase) {
this.booksDatabase = booksDatabase;
readBooksFromFile(); // Error here
}
第三种方法
public static void main (String[] args){
// creates ListBook object to keep track of books in the library
ListBook lb = new ListBook("books.dat"); // Error here
// add books to the ListBook object
lb.addBook(new Book("E-commerce", "Kenneth Laudon", "2014", "024449"));
lb.addBook(new Book("Java Programming", "Daniel Liang", "2014", "761312"));
lb.addBook(new Book("EU Internet Law", "Andrej Savin", "2015", "429379"));
//New object
//getter setter methods
LibrarianMenu li = new LibrarianMenu(lb);
//execute the function from the librarian.java
}
如何解决这个错误?
【问题讨论】:
-
令人困惑的代码阅读。您没有遵循 Java 编码标准。什么是书籍?如果您发布整个课程而不是方法 sn-ps 会更好。我们无法看到整个上下文。
-
图书是变量吗?如果是它需要以小写字母开头。您是否尝试过强制转换:ClassName Books = (Classname)input.readObject();
-
你需要转换你的 ObjectInputStream--> (ListBook)ObjectInputStream
-
您应该将转换添加到列表类型:
标签: java compiler-errors