[英]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.