Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在不序列化的情况下保存类对象_Java_Android_Object_Save_Storage - Fatal编程技术网

Java 在不序列化的情况下保存类对象

Java 在不序列化的情况下保存类对象,java,android,object,save,storage,Java,Android,Object,Save,Storage,我有一个名为MyClass的类,带有一些属性String name、String place、int num。。。。 我读过android开发者网站,但我真的不明白它是如何工作的。 所以我想要一个方法,将这些保存到一个文件或某个地方,当我想从另一个活动或任何地方读取它时,我可以将它放入数组或其他东西中,这样我就可以得到g.Name、g.place和其他属性 我也希望能够编辑和删除这些 如果有人知道一个好的解决方案,请写信。对不起我的英语 SharedReferences是一个易于使用的选项。这里

我有一个名为MyClass的类,带有一些属性String name、String place、int num。。。。 我读过android开发者网站,但我真的不明白它是如何工作的。 所以我想要一个方法,将这些保存到一个文件或某个地方,当我想从另一个活动或任何地方读取它时,我可以将它放入数组或其他东西中,这样我就可以得到g.Name、g.place和其他属性

我也希望能够编辑和删除这些


如果有人知道一个好的解决方案,请写信。对不起我的英语

SharedReferences是一个易于使用的选项。这里有一个很好的入门指南:

您可以使用XStream,它能够将任何对象序列化为XML,当然需要一些假设。它比序列化慢,但在您的情况下,它应该可以正常工作。

您可以使用来自google的JacksonJSON或gson。这样,您可以将对象写入文件并再次读取。

如果您希望将MyClass的值保存在应用程序范围之外的某个位置,例如保存到SharedReferences或文件中,您将别无选择,只能序列化数据。当然,这假设您希望在应用程序关闭后访问此数据。现在,如果您只想在应用程序运行时保存数据,您可以使用类似于单例、全局类等的东西。您可以以任何方式保存您的类,只要您有保存它的方法和从文件创建对象的其他方法是的,但我读到,如果我序列化我的类,如果我修改该类,它不会再工作了,所以首先我只想测试我写的东西是否有效。一般来说,只要以兼容的方式进行更改,当类型更改时序列化就可以工作。序列化规范提供了更多信息:谢谢,我认为没有其他方法,我必须序列化它,我做了一个备份,而不是:不。您必须将原语值String,int,boolean放入SharedReferences中。既然您提到您的类只有几个属性,那么这似乎是一种实用的方法。