gpt4 book ai didi

java - 自动生成id

转载 作者:行者123 更新时间:2023-11-30 07:17:42 25 4
gpt4 key购买 nike

我正在尝试为客户自动生成一个 ID,我每次得到的都是0。

很确定问题出在 public void regCustomer() 中。

public class User {
private String firstName, gender, age;
String surename;
private int customerID;
private static int idCounter = 1000;
User next;

public User(String fN, String sn, String g, String a) {
firstName = fN;
surename = sn;
gender = g;
age = a;
//customerID = cID;
next = null;
}

public void setCustomerID() {
customerID = idCounter++;
}

public int getCustomerID() {
return customerID;
}

public String toString() {
return customerID + "\t" + surename + "\t" + firstName + "\t" + age
+ "\t" + gender;

}

Window类中

public void regCustomer() {


//int customerID = 0;//= Integer.parseInt(customerIDField.getText());
String firstName = firstNameField.getText();
String surename = surenameField.getText();
String gender = genderField.getText();
String age = ageField.getText();

if (!firstName.equals("") && !surename.equals("") && !gender.equals("")&& !age.equals("")) {
userA.regCustomer(new User(firstName, surename, gender,age));
User u = new User(firstName, surename, gender,age);
u.getCustomerID();
customerIDField.setText("");
firstNameField.setText("");
surenameField.setText("");
ageField.setText("");
genderField.setText("");
firstNameField.requestFocus();
} else
JOptionPane.showMessageDialog(this, "Alle felt må fylles inn");
}

最佳答案

您永远不会设置 ID,这就是它为零的原因。

您可以使用private static final AtomicInteger 来生成您的id 序列;只需在构造函数中读取它:

private static AtomicInteger ID_GENERATOR = new AtomicInteger(1000);

public User(String fN, String sn, String g, String a) {
customerID = ID_GENERATOR.getAndIncrement();
//rest of constructor
}

您应该使用 AtmoicInteger,因为这是线程安全的,而且 getAndIncrement 方法是原子的。 int 没有这样的保证。

需要回答的问题是这些项目是否以任何方式持久化,如果是这样会发生什么——使用这种技术,id 生成总是从 1000 开始。

关于java - 自动生成id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15866028/

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