Java自动增量id
我正在用Java编写代码,但它不起作用:Java自动增量id,java,Java,我正在用Java编写代码,但它不起作用: public class job { private static int count = 0; private int jobID; private String name; private boolean isFilled; public Job(, String title, ){ name = title; isFilled = false; jobID = ++count;
public class job
{
private static int count = 0;
private int jobID;
private String name;
private boolean isFilled;
public Job(, String title, ){
name = title;
isFilled = false;
jobID = ++count;
}
}
我需要在创建新条目时自动增加Id
public class job
{
private static int jobID;
private String name;
private boolean isFilled;
public Job(String title){
name = title;
isFilled = false;
synchronized {
jobID = jobID + 1;
}
}
您的代码可以工作,但如果您点击Integer.MAX\u VALUE
,可能会遇到一些问题
选择long
可能是更好的解决方案。或者,如果您只需要唯一标识符UUID.randomUUID()
请尝试以下操作:
使用以下命令:
public class TestIncrement {
private static int count = 0;
private int jobID;
private String name;
private boolean isFilled;
public TestIncrement(String title) {
name = title;
isFilled = false;
setJobID(++count);
}
public int getJobID() {
return jobID;
}
public void setJobID(int jobID) {
this.jobID = jobID;
}
}
请使用以下内容来测试此功能
public class Testing {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
for (int i = 0; i < 10; i++) {
TestIncrement tst = new TestIncrement("a");
System.out.println(tst.getJobID());
}
}
公共类测试{
/**
*@param args
*/
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
对于(int i=0;i<10;i++){
TestIncrement tst=新的TestIncrement(“a”);
System.out.println(tst.getJobID());
}
}
}您已经在这样做了,顺便说一句,如果您正在创建多个作业对象,请删除
字符串标题周围的逗号,然后在类外跟踪作业id(给您作业1、作业2等)@JattnetBorn2Code在使其可编译后就可以了。认为它可以工作(如果您没有超过200万个作业)并更正为构造函数以使其可编译。查看您的作业构造函数,我认为它甚至不会编译..谢谢,没有看到AtmicInteger的+1(没有提到多线程,但线程安全总是好的)哪一个是最终的?最终原子整数?这意味着一旦计数变量初始化,它就无法更改。
public class TestIncrement {
private static int count = 0;
private int jobID;
private String name;
private boolean isFilled;
public TestIncrement(String title) {
name = title;
isFilled = false;
setJobID(++count);
}
public int getJobID() {
return jobID;
}
public void setJobID(int jobID) {
this.jobID = jobID;
}
public class Testing {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
for (int i = 0; i < 10; i++) {
TestIncrement tst = new TestIncrement("a");
System.out.println(tst.getJobID());
}
}