如何在重新加载类后保留变量值

时间:2012-12-07 15:45:44

标签: java

你好我写了一个模拟java测验的程序。该程序有3个嵌套类,第一类要求提供用户信息(名称id#etc),所有提供的第二个类被称为此类是当用户回答所有问题或时间用完时测验结束的实际测验这一点,第三课得分测验。如果用户失败,他可以按一个按钮,让他再次参加测验。当选择try again选项时,跟踪尝试的变量由一个实现。然而,问题在于跟踪用户已经尝试了多少尝试的变量被擦除了,因为我编写代码的方式程序从类1开始,然后是类2和类3,并且由于某种原因当类重新加载第二次时,变量返回到其初始值。 有没有办法可以保存变量,以免被擦除? 任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

我建议在文件中写入值,以便在重新加载类时,它将从那里读取。

答案 1 :(得分:0)

您的测验信息应该在磁盘上有某种持久性。检查FileOutputStreamFileInputStream以读取和写入文件。如果你谷歌它有很多教程(例如this one。)

答案 2 :(得分:0)

我认为你有类似的东西

public class A {    
    Object value;
    public void setValue(Object value) {
       this.value = value;
    }
    public Object getValue() {
       return value;
    }
}

因此,当您销毁一个实例并创建一个新实例时,该值就消失了。

作为学术解决方案,您可以将value移至课程级别。

所以它会是:

public class A {    
    static final Object[] values;
    static void setValue(Object value) {
       values[0] = value;
    }
    static Object getValue() {
       return values[0];
    }
}

这种方式value成员属于该类而不是实例。

NOT 在现实生活中应用。重新考虑你的设计。