无整数溢出风险的java类标识符

okxuctiv  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(432)

当你试图给一个类的每个对象一个唯一的标识符时,有没有什么聪明的解决方案来避免整数溢出的风险?
例如,在java中:
如果我有这样的属性

private static int nextID = 0;

我的构造器看起来像

public MyClass() {
        this.id = nextID++;
    }

很可能,如果我创建了太多的对象,我会得到一个整数溢出,id将不再是唯一的值。
我怎样才能避免这种行为?

hfsqlsce

hfsqlsce1#

你不能。即使使用long,如果创建的对象超过2^64个,最终也会耗尽唯一的id。
如果您想使用在很长一段时间内不会耗尽的id,请使用uuids。

相关问题