java - 生成唯一的对象 ID

标签 java class object uniqueidentifier

我试图为类中的每个对象生成一个新的唯一标识符,而不使用static nextID 字段来递增。使用它会在卸载和卸载程序时产生复杂性。

我想出了一个解决方案,以静态方法循环检查所有对象,但由于某些我未知的原因,它不会退出 while 循环。

我已经在ideone.com上测试过here一开始就尝试创建 5 个对象,但它甚至不会创建一个。

无需访问链接即可查看整个测试代码,下面是我正在使用的方法。

public static int newRandomID() {
    int randomID = 0;
    boolean notUnique = true;

    while (notUnique) {
        randomID = (int) (Math.random() * 999999 + 1);
        for (Example e : examples) {
            if (e.ID == randomID) {
                notUnique = true;
                break;
            }
            notUnique = false;
        }
    }
    return randomID;
}

我是否刚刚犯了一个愚蠢的错误,我太盲目而看不到,或者有什么原因导致这不起作用?

最佳答案

如果您需要的只是一个唯一标识符(不必是连续的)并且不必是整数,请查看 java.util.UUID

关于java - 生成唯一的对象 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37429466/

相关文章:

arrays - 如何在 Robo3T 中将结果从一个查询传递到另一个查询

c - 如何用 C 语言编写面向对象的代码?

java - charvariable=(char)(charvariable+3) 这个语法是什么意思?

java - jackson XML 注释 : String element with attribute

java - 如何通过向 Java 中现有的库类添加方法来创建新类?

C# 带有成员的静态成员类

C++ 设置类值

python - 比较两个对象时超出最大递归深度

java - 创建新的 NamedQuery 或构建新的 List 以返回字段值?

javascript - 嵌套的键值对分组到一个数组中