在將JSON格式的數據轉換為BEAN的JAVA數據格式時,需要提供帶參數和不帶參數的構造函數,如果僅僅提供了帶參數的構造函數,而沒有提供不帶參數的構造函數,會發生如下的異常:
Exception in thread "main" net.sf.json.JSONException: java.lang.InstantiationException:
這表明BEAN沒有正常的被初始化:

public static void json2bean()
{
JSONObject jo = JSONObject
.fromObject("{bookname:\"C++程序設計\",isbn:\"885596-989\",author:\"小東\"}");
Book book = (Book) JSONObject.toBean(jo, Book.class);
System.out.println(book.getAuthor() + "-" + book.getBookname());

}
所以在Book.java文件中,除了要提供帶參數的構造函數

public Book(String bookname, String isbn, String author)
{
this.bookname = bookname;
this.isbn = isbn;
this.author = author;
}
外,還要提供不帶參數的構造函數:

public Book()
{
System.out.println("this is run
");
}
這樣就不會報那個異常了.為了表明不帶參數的構造函數被調用,可以在函數中加入一條輸出語句,以表明不帶參數的構造函數是否被調用.
posted on 2008-10-31 09:51
henry1451 閱讀(616)
評論(0) 編輯 收藏