Java 不使用构造函数和setter创建唯一id

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() {

我想在此类中创建唯一的id,而不使用构造函数和setter。

您可以添加:

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();