java.util.UUID
是否适用于Java中的类?也就是说我有一个需要唯一id的类,这样每次我在main方法中构造该类的对象时,它都会有一个唯一的ID号。
构造函数可能如下所示:
class flight{
private UUID id;
public void flight(){
id = UUID.randomUUID();
}
}
并且主方法调用可能如下所示:
public static void main(String[] args){
flight[] allflights = new flight[100];
flight tempFlight;
for(int i=0; i<100; i++){
tempFlight = new flight()
allflights[i] = tempFlight;
}
这是否会为飞行阵列内的所有航班生成唯一的ID?
答案 0 :(得分:3)
正如documentation所解释的那样,这确实会为每个对象生成一个唯一的id:
静态工厂检索类型4(伪随机生成)
UUID
。 使用加密强伪随机生成UUID
数字生成器。
正如Vidkor在评论中解释的那样,there is a chance of collision。
答案 1 :(得分:2)
是的,这就是UUID的用途。每次调用randomUUID()时,你都会得到一个新的随机UUID; UUID是128位值。
所以理论上你可以在使用随机UUID时遇到冲突,但是因为它说使用了加密强大的随机生成器,我认为你不需要为这种可能性而烦恼。
答案 2 :(得分:-1)
你问题的答案就在你的问题中。
运行该代码打印UUID,你会发现,添加System.out.println
有什么困难?
public static void main(String [] args){ flight [] allflights = new flight [100]; 飞行tempFlight;
for(int i=0; i<100; i++){
tempFlight = new flight()
allflights[i] = tempFlight;
System.out.println(tempFlight.getId());
}