2014-01-15 25 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列設置爲自動增量並讓數據庫處理它。