繁体   English   中英

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

[英]How to keep variable value after reloading class

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

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

你应该在磁盘上有一些持久性的测验信息。 检查FileOutputStreamFileInputStream以读取和写入文件。 如果你谷歌它有很多教程(比如这个 。)

我假设你有类似的东西

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成员属于类而不是实例。

这样做在实际生活中的应用。 重新考虑你的设计。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM