Java 不使用构造函数和setter创建唯一id
我想在此类中创建唯一的id,而不使用构造函数和setter。您可以添加:Java 不使用构造函数和setter创建唯一id,java,Java,我想在此类中创建唯一的id,而不使用构造函数和setter。您可以添加: class person { private int id ; private String name; private boolean gender; public person() { } public AtomicLong getId() { return id; } public String getName() {
class person {
private int id ;
private String name;
private boolean gender;
public person() {
}
public AtomicLong getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isGender() {
return gender;
}
public void setGender(boolean gender) {
this.gender = gender;
}
}
然后,在构造函数中,您将使用:
private static int ID_GENERATOR = 0;
要构造
person
实例,字段初始值设定项将被复制到构造函数中。假设没问题,你可以用一个
public person() {
id = ID_GENERATOR++;
}
请不要使用无意义的文本来围绕系统工作,试图通过提供更多信息来让你写出更好的问题。你已经试过什么了?您是否需要此ID在多个系统之间是唯一的?那么代码的多次运行呢?它总是从0开始,然后递增可以吗?它总是从0开始,然后递增。在这种情况下,Elliott的答案应该对你有用。请注意,如果您多次运行该程序,您将多次获得相同的ID-因此这不是您希望用于持久数据的内容。除非您希望它是非线程安全的,否则您不会这样做。使用原子整数将是一个更好的主意。。。
private static AtomicInteger ai = new AtomicInteger(0);
private int id = ai.incrementAndGet();