[英]JavaFX - Auto increment ID
這就是我所擁有的
public class AddNewCategoryController implements Initializable {
@FXML
private TextField name;
@FXML
private TextField description;
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
}
public void save(){
final AtomicLong identifier = new AtomicLong(5);
Long id = identifier.incrementAndGet();
String catgoryName = name.getText();
String categoryDescription = description.getText();
Category category = new Category(id,catgoryName,categoryDescription);
ReadingDataFromFiles.writeCategory(category);
}
}
當程序運行時,會出現一個添加新類別的屏幕,用戶必須編寫類別的名稱和描述,但 ID 應該是自動的,並且應該在每次用戶輸入新類別時增加。 我這樣做的方式並沒有按預期工作,它只增加了一次,但由於初始值保持為 5,它始終為 6。
移動這一行:
final AtomicLong identifier = new AtomicLong(5);
…更高,在方法之外,成為 class 上的成員字段。
在您現有的代碼中,對該save
方法的每次調用都會創建一個新的AtomicLong
來替換前一個。 所以你的計數不能累積。
適當的命名可以幫助澄清。 AtomicLong
不是“標識符”。 它是一個“標識符生成器”。 incrementAndGet
方法返回的每個數字都是“標識符”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.