实现具有唯一标识号的类

wdc*_*wdc 2 java

我必须创建一个具有int成员的类,该成员对于该类的每个对象都是唯一的.所以:

public class Cls {
    private int id;
    public Cls(){id = unique number;}
}
Run Code Online (Sandbox Code Playgroud)

因此,当我创建x个Cls对象时,我必须确保没有类具有相同的id.但我想避免在main中创建全局变量,并逐个设置id.如果可能,如果可以在构造函数中设置id,那将是很好的.

Old*_*eon 5

您可以保存static包含您使用的最后一个值的值,并在每次使用时始终递增它.这AtomicInteger是非常好的,因为它是线程安全的,并且如果在多线程环境中使用则不需要锁.

public class Cls {
    // The last id I used.
    private static final AtomicInteger nextId = new AtomicInteger();
    // My id
    private final int id = nextId.getAndIncrement();

    public Cls() {
    }
}
Run Code Online (Sandbox Code Playgroud)