如何创建自动递增的Java变量

时间:2018-06-27 20:49:11

标签: java auto-increment uniqueidentifier

我目前正在构建一个模拟的医院管理系统。我已经能够成功地将用户注册输入(例如名称,性别等)从jTextFields写入文本文件,但是我正在努力使自动递增的唯一标识符随文本文件的每一行而变化。我有一个专用的jTextField,但是每次单击添加记录按钮时,都无法使int变量增加1。

我已经声明“ reg”为等于1的整数

int reg = 1; 

因为我需要将数字发送到文本文件,所以我将其转换为字符串,并将不可编辑的文本字段regnumber设置为该字符串,然后再将其写入文本文件

 String regString = Integer.toString(reg);
        regnumber.setText(regString);

不幸的是,当reg写入文件时,它继续显示为2。每次加载帧时,我如何以及在什么时候使用++运算符来增加texfield中的reg号。任何帮助将不胜感激

screenshot of GUI in question

2 个答案:

答案 0 :(得分:1)

仅从文件读取一次值,并将其初始化为AtomicInteger。使用incrementAndGet()方法将当前值加1。

    private static AtomicInteger at = new AtomicInteger(0);
    
    public int getNextCountValue() {
        return at.incrementAndGet();
    }

希望对您有帮助。

答案 1 :(得分:0)

您没有在问题中包含足够的详细信息来确定问题所在,但这是我的猜测。

左侧与右侧

  • postfix operators ++--(在变量的右侧)在访问变量的值后 生效。 / li>
  • 在变量的左侧,它们会在访问值前 生效。

请参见Oracle的the demo in the Java Tutorials。我建议您花些时间研究这些教程,因为它们涵盖了学习Java的所有基础知识。

// prints 5
System.out.println(i);
// prints 6
System.out.println(++i);
// prints 6
System.out.println(i++);
// prints 7
System.out.println(i);