简体   繁体   中英

create unique id without using constructure and setters

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;
    }

}

I want to create unique id in this class without using constructors and setters.

To construct a person instance, the field initializer will be copied into the constructor. Assuming that's okay, you could use an AtomicInteger and something like,

private static AtomicInteger ai = new AtomicInteger(0);
private int id = ai.incrementAndGet();

you could add:

    private static int ID_GENERATOR = 0;

then, in the constructor, you will use:

    public person() {
        id = ID_GENERATOR++;
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM