1

为了创建具有唯一 ID 的客户端对象,我正在考虑这样做(见下文)。是否会为这个新创建的对象分配一个随机生成的字符串并添加到对象中,然后添加到列表中?我以后可以访问它吗?(抱歉无能)。

目前还没有测试的方法。

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);

客户端指的是带有变量的类和带有参数的构造函数,如下所示。

非常感谢!

4

2 回答 2

2

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

于 2014-01-15T13:05:21.173 回答
1

我同意 chrylis 的观点,即在将变量名更改为“client”之后,这种方法在绝大多数情况下都应该有效,这样就不会与 Client 类名混淆。

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

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

于 2014-01-15T13:17:28.817 回答