java - 使用现有文件自动增加 ID

标签 java

我有自动递增 id 的代码,它工作得很好。但是,当我序列化实例并使用现有 ID 再次加载它时,新实例将从 1 开始计数。是否有一种方法,如果我存在 ID1 和 ID2,则新实例将为 3 而不是 1?

String fName;
String lName;
String address;
String phoneNum;
int ID;
static int PAT_ID = 1;
ArrayList<Invoice> p_invoiceList;

public Patient(String fName, String lName, String address, String phoneNum) {
    super(fName, lName, address, phoneNum);
    p_invoiceList = new ArrayList<Invoice>();
    ID = PAT_ID;
    PAT_ID++;

}


public int getId() {
    return ID;
}

最佳答案

Java 序列化省略静态字段。它们不会被序列化,并且在反序列化期间会被忽略(请参阅 https://stackoverflow.com/a/6429497/1849837 )

您有静态 PAT_ID,反序列化后将由初始化程序设置为 1。然后ID将被设置为1。

关于java - 使用现有文件自动增加 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49883333/

相关文章:

java - Tomcat 8.5 org.apache.juli maxDays 属性不工作

Java程序占用太多内存

java - log4j 日志未写入文件的问题

java - Apache 无需下载即可获取文件日期

java - 使用自定义属性从 PDF 添加/删除/检索信息

java - 获取查询更新的行的 ID

java - 如何在Java中的代码部分之间等待指定的时间?

java - 创建与另一个实例相同类型的新实例

java - 在应用程序级别实现 WS-Security

java - Spring Boot JSR-303/349 配置