我试图为类中的每个对象生成一个新的唯一标识符,而不必使用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/

10-13 00:07