[英]auto increment ID in java console oop
我的程序中有 3 种类型的用户,当我想添加它们时,我希望 id 在我的文件中自动递增,我做了一个切换案例,我要添加这些人,我尝试使用 id = ++计数(在代码中)但它仅适用于当前用户(enseignant)当我切换到另一个(学生)它从 0 开始而不是最后使用的 id
public void addRecord(Scanner strInput) throws IOException {
int count = 0;
int id;
boolean isFilled;
BufferedWriter bw = new BufferedWriter(new FileWriter("adherent_db.txt", true));
String nom = " ";
System.out.println("donner le type d'adherent ");
System.out.println("1)Enseignant\t2)etudiant\t3)visiteur ");
int c = strInput.nextInt();
switch (c) {
case 1:
Enseignant enseignant = new Enseignant();
isFilled = false; // sets false to false
id = ++count;
enseignant.setId(id);
System.out.println("Enter le nom d'Enseignant: ");
nom = strInput.nextLine();
enseignant.setNom(nom);
System.out.println("Entrer le prenom d'Enseignant: ");
prenom = strInput.nextLine();
enseignant.setPrenom(prenom);
System.out.print("Entrer l'adresse d'Enseignant: ");
adresse = strInput.nextLine();
enseignant.setAdresse(adresse);
Enseignant.getType();
bw.write(enseignant.toString());
bw.flush();
bw.newLine();
bw.close();
break;
case 2:
Etudiant etudiant = new Etudiant();
isFilled = false; // sets false to false
id = ++count;
etudiant.setId(id);
System.out.println("Enter le nom etudiant: ");
如何为所有用户创建一个自动增量ID,有什么帮助吗?
您可以使用分配增加 id,如下所示:
public void addRecord(Scanner strInput) throws IOException {
int id = 1;
boolean isFilled;
BufferedWriter bw = new BufferedWriter(new FileWriter("adherent_db.txt", true));
String nom = " ";
System.out.println("donner le type d'adherent ");
System.out.println("1)Enseignant\t2)etudiant\t3)visiteur ");
int c = strInput.nextInt();
switch (c) {
case 1:
Enseignant enseignant = new Enseignant();
isFilled = false; // sets false to false
enseignant.setId(id++);
System.out.println("Enter le nom d'Enseignant: ");
nom = strInput.nextLine();
enseignant.setNom(nom);
System.out.println("Entrer le prenom d'Enseignant: ");
prenom = strInput.nextLine();
enseignant.setPrenom(prenom);
System.out.print("Entrer l'adresse d'Enseignant: ");
adresse = strInput.nextLine();
enseignant.setAdresse(adresse);
Enseignant.getType();
bw.write(enseignant.toString());
bw.flush();
bw.newLine();
bw.close();
break;
case 2:
Etudiant etudiant = new Etudiant();
isFilled = false; // sets false to false
etudiant.setId(id++);
System.out.println("Enter le nom etudiant: ");
}
}
您有几个选择,但最直接和直接的方法是让您的 ID 计数为static
变量。
什么是static variable
?
Java 中的 Static 变量是属于 class 的变量,在执行开始时仅初始化一次。 它是属于 class 而不是对象(实例)的变量。 Static 变量仅在执行开始时初始化一次。 这些变量将在初始化任何实例变量之前首先被初始化。
由 class 的所有实例共享的单个副本 static 变量可以通过 class 名称直接访问,不需要任何 static 名称,不需要任何 static 名称
来源: guru99.com
这意味着正在运行的 JVM 中只有一个副本,因此从任何地方访问它都会返回相同的值。
它本身不是线程安全的,但对于一个简单的单线程程序来说应该足够了。
private static int NEXT_ID = 0; // set this to whatever starting ID you want
public static int getNextId() {
return MyClass.NEXT_ID++; // return the current NEXT_ID and then increment
}
现在你可以像这样使用它:
id = MyClass.getNextId();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.