小编典典

如何序列化第三方不可序列化的最终类(例如Google的LatLng类)?

java

我正在使用v2 Google
Play服务中的Google的LatLng类。那个特定的类是最终的,不会实现java.io.Serializable。有什么办法可以使LatLng该类实现Serializable

public class MyDummyClass implements java.io.Serializable {
    private com.google.android.gms.maps.model.LatLng mLocation;

    // ...
}

我不想声明mLocation 短暂的


阅读 344

收藏
2020-11-16

共1个答案

小编典典

不是,Serializable但是是Parcelable,如果可以的话。如果没有,您可以自己处理序列化:

public class MyDummyClass implements java.io.Serialiazable {
    // mark it transient so defaultReadObject()/defaultWriteObject() ignore it
    private transient com.google.android.gms.maps.model.LatLng mLocation;

    // ...

    private void writeObject(ObjectOutputStream out) throws IOException {
        out.defaultWriteObject();
        out.writeDouble(mLocation.latitude);
        out.writeDouble(mLocation.longitude);
    }

    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
        in.defaultReadObject();
        mLocation = new LatLng(in.readDouble(), in.readDouble());
    }
}
2020-11-16