2013-06-19 63 views
0

我遇到了以下問題序列化對象:的Java的RuntimeException與序列化和自定義接口

比方說,我有一個RiceContainerClass像這樣:

public class RiceContainerClass implements Serializable{ 
private typeOfRice 
private countryOfOrigin 

... 

我能繼承這個類,(也許我想要一些SteamedRiceClass),但最重要的是我能夠通過這個類Activities與我目前的實施。

當我決定我的Rice類可能需要帶有Sauceable接口時,問題就出現了。

我寫的接口:

public interface Sauceable{ 

    public void setTypeOfSauce(Sauce sc) 

    public Sauce getRiceSauce() 
} 

(我在程序的Sauce實際上是Drawable

當我修改RiceContainerClass實施Sauce接口:

public class RiceContainerClass implements Serializable, Sauceable 

我在運行期間從logcat獲得以下錯誤:

java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.example.app.RiceContainerClass) 

有關如何操作的建議?我試着讓Sauce班延伸Serializable,想到也許這將無濟於事。

回答

0

這意味着app.RiceContainerClass不是Serializable

只要確保此類實現了接口Serializable並定義了寫入和讀取對象的方法。

你可以查看一些例子here

+0

不可否認我是懶惰的,不想使用Parcelable,因爲額外的代碼必須添加到實現類中。感謝這個例子的鏈接,我會試一試,讓你知道。 我覺得奇怪的是,我在第一次實現Serializable,然後一旦我添加額外的Sauecable接口,它告訴我它不是可序列化的。 – edc598

+0

看看這裏以及:http://www.developerphil.com/parcelable-vs-serializable/ –

+0

感謝編輯! –