为了创建一个具有唯一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);
客户端引用具有变量的类和具有如下所示参数的构造函数。
非常感谢!
答案 0 :(得分:2)
很可能可以工作。请注意,UUID不一定是唯一的,只是非常可能,如果您生成类型4 UUID,则会有一个非常小但非零的机会发生冲突。基于名称生成UUID(可能是变量的规范表示)或包括有关生成计算机的信息可以帮助减少多个系统同时生成UUID时发生冲突的可能性。
答案 1 :(得分:1)
我同意chrylis的意见,在将变量名称更改为“client”之后,这种方法应该在绝大多数情况下都能正常工作,这样就不会与Client类名混淆。
另一种方法是使用一个静态变量,它是一个AtomicLong,从数据库初始化为零或某个值。每次需要uniqueId时,使用incrementAndGet(),它将自动递增变量并返回值,您将将其用作uniqueId。
当使用Hibernate / JPA并在每条新记录上需要uniqueId时,我只是将id列设置为autoincrement并让数据库处理它。