现有文件的自动增量ID

时间:2018-04-17 16:37:49

标签: 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;
}

1 个答案:

答案 0 :(得分:-2)

Java序列化省略了静态字段。它们没有序列化,在反序列化期间被忽略(参见https://stackoverflow.com/a/6429497/1849837

你有一个静态PAT_ID,反序列化后将由initalizer设置为1。然后ID将设置为1。