Monday, July 20, 2015

接口的向下转型到子类


今天,遇到一个问题,在Activty传递的时候我们 需要当前Acitvity 自定义View 中的数据传递过去。 但是在跳转的时候写的是 CustomDeatailEntity. 在自定义View中的数据的处理是 使用接口实现的,就是让CustomDeatailEntity  implements interfaceDemo 中的方法,这种方案是十分方便的!

卧槽 我好喜欢啊!

实现方案:
1 可以将接口 向下转型成子类。

2 问题,一开始运行的时候报错了。我擦,竟然是CustomDeatailEntity的内部类没有实现Seriable 接口。这样的话,对象没有保存对象。

报的错误:
Caused by: java.io.NotSerializableException: com.eallcn.chowagent.entity.CustomerDetailEntity$Customer_info
            at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1342)
            at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1649)
            at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1495)
            at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1459)
            at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:957)
            at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:360)
            at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1052)
            at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1382)
            at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1649)
            at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1495)
            at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1459)
            at android.os.Parcel.writeSerializable(Parcel.java:1311)
            at android.os.Parcel.writeValue(Parcel.java:1264)
            at android.os.Parcel.writeArrayMapInternal(Parcel.java:618)
            at android.os.Bundle.writeToParcel(Bundle.java:1692)
            at android.os.Parcel.writeBundle(Parcel.java:636)
            at android.content.Intent.writeToParcel(Intent.java:7385)
            at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2220)
            at android.app.Instrumentation.execStartActivity(Instrumentation.java:1434)
            at android.app.Activity.startActivityForResult(Activity.java:3534)
            at android.app.Activity.startActivityForResult(Activity.java:3495)
            at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:820)
            at com.eallcn.chowagent.ui.activity.BaseActivity.startActivityForResult(BaseActivity.java:140)
            at android.app.Activity.startActivity(Activity.java:3737)
            at android.app.Activity.startActivity(Activity.java:3705)

            at com.eallcn.chowagent.ui.control.NavigateManager.goToCustomerRecommendAvailabilityActivity(NavigateManager.java:601)


No comments:

Post a Comment