我正在用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;
}
}
我需要在创建新条目时自动增加Id。
答案 0 :(得分:21)
试试这个:
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();
}
答案 1 :(得分: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());
}
}
}
答案 2 :(得分:0)
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;
}
}
您的代码可以使用,但如果点击Integer.MAX_VALUE
,则可能会遇到一些问题。
选择long
可能是更好的选择。或者如果您只需要唯一标识符UUID.randomUUID()
答案 3 :(得分:-1)
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;
}
}