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