簡體   English   中英

JavaFX - 自動增量 ID

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM