gpt4 book ai didi

用于自动递增的 Java 静态变量 (userID) ObjectOutputStream

转载 作者:行者123 更新时间:2023-12-04 05:09:42 25 4
gpt4 key购买 nike

我在学校有这个作业。它包括创建一个“人”类,并将每个对象放在一个列表中。每个 Person 对象都应该有一个唯一的 ID。这是通过在类中定义一个静态 int 来实现的,如下所示:

public class MyClass implements Serializable
{
private static int nextmember;
private int userid;

public MyClass()
{
userid = nextmember++;
}
}

这工作得很好,第一个对象获取用户 ID 1,下一个对象获取用户 ID 2 等等。我的挑战是在保存到文件时如何处理这个问题?我使用 ObjectOutputStream 和 ObjectInputStream。

因此,如果我创建 3 个对象,1、2 和 3,关闭我的程序(所有内容都保存到文件中),重新打开程序(所有 3 个对象都存在),然后创建第四个对象,第四个对象的用户 ID 为 1 . 如何通过关闭/重新打开程序保留nextmember 值?

尝试使用谷歌搜索它,但我在这个主题上能找到的只是“序列化静态变量没有意义”,所以也许我应该找到一种不同的用户 ID 管理方法?

谢谢,
埃里克

最佳答案

我并不是说这是一个好的解决方案,但解决这个问题的最简单方法是还将静态“nextmember”字段的值保留到文件中。

例如

ObjectOutputStream objectOutputStream = ...;
objectOutputStream.writeInt(MyClass.nextmember);
// write your users

ObjectInputStream objectInputStream = ...;
MyClass.nextmember = objectInputStream.readInt()
// read your users

关于用于自动递增的 Java 静态变量 (userID) ObjectOutputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15029445/

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