我正在使用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
短暂的 。
不是,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());
}
}
问题内容: 我在android / java中对Location的子类进行序列化遇到了麻烦 位置不可序列化。我有一个名为FALocation的第一个子类,它没有任何实例变量。我已经宣布它可序列化。 然后,我有一个名为Waypoint的第二个类,看起来像这样: 序列化工作正常。 反序列化会产生跟随翼异常(腿对象包含一个航路点): 问题答案: 序列化位置绝对必要吗?也许您可以将其标记为瞬态,并在反序列
问题内容: 如何序列化未实现Serializable的对象?我不能将其标记为Serializable,因为该类来自第3方库。 问题答案: 您不能序列化未实现的类,但可以将其包装在可以实现的类中。为此,您应该在包装器类上实现和,以便可以以自定义方式序列化其对象。 首先,使您的非序列化字段。 在中,首先调用流以存储所有非瞬态字段,然后调用其他方法来序列化不可序列化对象的各个属性。 在中,首先调用流以读
问题内容: 如何使Python类可序列化? 一个简单的类: 我应该怎么做才能获得输出: 没有错误 问题答案: 您对预期的输出有想法吗?例如,这样做吗? 在这种情况下,您只能致电。 如果您想要更多的自定义输出,则必须继承并实现自己的自定义序列化。 有关一个简单的示例,请参见下文。 然后,将该类作为kwarg 传递给方法: 如果你也想解码,那么你将有一个自定义供应给类。例如:
问题内容: 考虑下面的类。如果我对它运行Findbugs,它将在第5行而不是在第7行给我一个错误(“可序列化类中的非瞬态不可序列化实例字段”)。 这是正确的,因为java.util.Set从未在其层次结构中实现Serializable,而java.util.HashSet却没有实现。但是,最佳实践是针对接口而不是具体的实现进行编码。 我该如何最好地处理呢? 我可以在第3行上添加一个@Suppres
我有一个没有扩展可串行化或可外部化接口的类,但在netbeans中使用FindBugs时仍然会遇到错误。有人能告诉我如何解决这个问题吗? 这是我的课 FindBug中的Bug:类分析器定义了一个非瞬时的非序列化实例字段objAnalyzerVar,对于objAnalyzerDataTypeInfo也是如此;
考虑以下代码: 现在扩展了一个实现接口的类。类和是带有一堆getter和setter的POJOS。FindBugs抱怨和字段说: 这个Serializable类定义了一个非基元实例字段,它既不是瞬态的、Serializable的,也不java.lang.Object的,并且似乎没有实现Externalizable接口或readObject()和WriteObject()方法。 好吧,所以一切都很好