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

问题描述

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

  1. public class MyDummyClass implements java.io.Serialiazable {
  2. // mark it transient so defaultReadObject()/defaultWriteObject() ignore it
  3. private transient com.google.android.gms.maps.model.LatLng mLocation;
  4. // ...
  5. private void writeObject(ObjectOutputStream out) throws IOException {
  6. out.defaultWriteObject();
  7. out.writeDouble(mLocation.latitude);
  8. out.writeDouble(mLocation.longitude);
  9. }
  10. private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
  11. in.defaultReadObject();
  12. mLocation = new LatLng(in.readDouble(), in.readDouble());
  13. }
  14. }

解决方法

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

  1. public class MyDummyClass implements java.io.Serializable {
  2. private com.google.android.gms.maps.model.LatLng mLocation;
  3. // ...
  4. }

我不想声明mLocation 短暂的

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”