使用hashMap,YAML从序列化中丢失输出

时间:2013-03-03 22:04:42

标签: java serialization hashmap yaml snakeyaml

您好我正在尝试学习如何使用snakeYAML。

我想保存对象,以便在启动应用程序时再次加载它。 我只想在图书馆里存放书籍。互联网告诉我 yaml 是一个很好的方法。

我必须上课:

public class Library {
private HashMap<String, List<Book>> library; 

public Library() {
    library = new HashMap<String, List<Book>>();
}

//getter
public HashMap<String, List<Book>> getHashMap() {
    return library;
}

//setter
public void setHashMap(HashMap<String, List<Book>> library) {
    this.library = library;
}
}

现在我想使用main方法对其进行序列化:

public static void main(String[] args) {

    Library library = new Library();
    LinkedList<Book> books = new LinkedList<Book>();

    books.add(new Book("Some title", false));
    books.add(new Book("Other Title", true));

    library.putMany("books", books);

    System.out.println(new Yaml().dump(books));

但我只得到输出:

- !!model.Book {done: false, title: Some title}
- !!model.Book {done: true, title: Other Title}

有些东西告诉我,我错过了像图书馆这样的东西。

1 个答案:

答案 0 :(得分:0)

这一定是因为您只dump()列出了两个books的列表,而不是整个Library