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