Java自增id
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/24305830/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Java auto increment id
提问by Jot Dhaliwal
I am doing some coding in Java, but it doesn't work:
我正在用 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;
}
}
I need to auto-increment the Id when a new entry is created.
创建新条目时,我需要自动增加 Id。
采纳答案by win_wave
Try this:
尝试这个:
public class Job {
private static final AtomicInteger count = new AtomicInteger(0);
private final int jobID;
private final String name;
private boolean isFilled;
public Job(String title){
name = title;
isFilled = false;
jobID = count.incrementAndGet();
}
回答by Programmer
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;
}
}
回答by Christian Kuetbach
public class Job // Changed the classname to Job. Classes a written in CamelCasse Uppercase first in Java codeconvention
{
private static int count = 0;
private int jobID;
private String name;
private boolean isFilled; // boolean defaults to false
public Job(String title){ // Your code wan unable to compile here because of the ','
name = title;
isFilled = false; // sets false to false
jobID = ++count;
}
}
Your code will work, but you may get some problems, if you hit Integer.MAX_VALUE
.
您的代码可以工作,但如果您点击 ,您可能会遇到一些问题Integer.MAX_VALUE
。
It may be a better soltion to choose long
. Or If you only need a Unique Identifier UUID.randomUUID()
可能是更好的选择long
。或者如果您只需要唯一标识符UUID.randomUUID()
回答by swgkg
Use the following,
使用以下,
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;
}
}
}
Please use following to test this
请使用以下来测试这个
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());
}
}
}
}