将唯一ID(UUID)添加到对象

时间:2014-01-15 13:01:38

标签: java object arraylist uuid bank

为了创建一个具有唯一ID的客户端对象,我正在考虑这样做(见下文)。这个新创建的对象是否会被赋予随机的generetad String并添加到对象中,然后是List?我以后可以访问它吗? (抱歉无能)。

目前无法进行测试。

List<Client> newCli = new ArrayList<Client>();

 String uniqueID = UUID.randomUUID().toString();

            Client Client = new Client(name1, name2, addrName, addrNumber, post, city, uniqueID);


            newCli.add(Client);

客户端引用具有变量的类和具有如下所示参数的构造函数。

非常感谢!

2 个答案:

答案 0 :(得分:2)

很可能可以工作。请注意,UUID不一定是唯一的,只是非常可能,如果您生成类型4 UUID,则会有一个非常小但非零的机会发生冲突。基于名称生成UUID(可能是变量的规范表示)或包括有关生成计算机的信息可以帮助减少多个系统同时生成UUID时发生冲突的可能性。

答案 1 :(得分:1)

我同意chrylis的意见,在将变量名称更改为“client”之后,这种方法应该在绝大多数情况下都能正常工作,这样就不会与Client类名混淆。

另一种方法是使用一个静态变量,它是一个AtomicLong,从数据库初始化为零或某个值。每次需要uniqueId时,使用incrementAndGet(),它将自动递增变量并返回值,您将将其用作uniqueId。

当使用Hibernate / JPA并在每条新记录上需要uniqueId时,我只是将id列设置为autoincrement并让数据库处理它。