2014-01-15 28 views
1

为了创建具有唯一ID的客户端对象,我正在考虑这样做(请参阅下文)。将这个新创建的对象分配一个随机生成的字符串并添加到该对象,然后是List?我稍后能够访问它吗? (抱歉无能)。将Uniqe ID(UUID)添加到对象

目前还没有测试方法。

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

我同意chrylis这种方法应该在绝大多数时间工作,在您将变量名称更改为“客户端”之后,以便不会与客户端类名称混淆。

另一种方法是使用一个静态变量,它是一个AtomicLong,初始化为零或来自数据库的某个值。每次你需要一个uniqueId时,使用incrementAndGet(),它将原子地增加变量并返回你将用作uniqueId的值。

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