gpt4 book ai didi

java - 实现保存和恢复对象属性状态的最佳方式

转载 作者:行者123 更新时间:2023-11-29 05:16:51 27 4
gpt4 key购买 nike

实现保存和恢复/推送和弹出对象属性状态的最佳方法是什么?喜欢 glPushMatrix() 和 glPopMatrix()?

例如:

obj.v1 = false;
obj.v2 = 0;
obj.v3 = "init";

obj.save();
obj.v1 = true;
obj.v2 = 2;
obj.v3 = "foo"
/* Do something... */

obj.restore();
/* Now v1 = false, v2 = 0, v3 = "init" again */

最佳答案

要保存到文件:使您的类可序列化

package com.yourpackage.name;
import java.io.Serializable;

public class myClass implements Serializable {
public enum counterType {
count_down,
count_up
}
public int myIntValue= 0;
}

如果您收到警告“The Serializable class X does not declare a static final serialVersionUID field of type long”,您可以通过为 serialVersionUID 添加一个值来解决此问题,例如:

private static final long serialVersionUID = 1234567890abcdefg;

像往常一样声明您的变量(例如,在您的主要 Activity 中):

myClass myClassVariable = new myClass();
myClassVariable.myIntValue = 99;

现在您可以将数据保存到文件中,使用:

try
{
FileOutputStream myFileOutputStream = new FileOutputStream(getFilesDir() + "file_name.ser");
ObjectOutputStream myObjectOutputStream = new ObjectOutputStream(myFileOutputStream);
myObjectOutputStream.writeObject(myClassVariable);
myObjectOutputStream.close();
}
catch (Exception e)
{
Log.e("Error when saving to file.",Log.getStackTraceString(e));
}

再次加载您的数据:

try
{
FileInputStream myFileInputStream = new FileInputStream(getFilesDir() + "file_name.ser");
ObjectInputStream myObjectInputStream = new ObjectInputStream(myFileInputStream);
readClassVariable = (myClass) myObjectInputStream.readObject();
myObjectInputStream.close();
}
catch (Exception e)
{
Log.e("Error when loading from file.",Log.getStackTraceString(e));
}

readClassVariable 现在包含您保存的类,例如readClassVariable.myIntValue 等于 99

希望对您有所帮助。欢迎评论:)

附言我需要代表,所以如果您喜欢,请不要忘记接受答案!

关于java - 实现保存和恢复对象属性状态的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26251006/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com