[英]Java Is there any elegant way to assign a default value to Number if that Number is null
[英]Elegant way to assign object id in Java
我有一個對象類...拉特說蘋果。
每個蘋果對象都有一個唯一的標識符(id)...我如何確保(優雅和有效)新創建的具有唯一ID。
謝謝
在Apple類中有一個static int nextId
並在構造函數中遞增它。
確保增量代碼是原子代碼可能是謹慎的,所以你可以做這樣的事情(使用AtomicInteger)。 這將保證如果兩個對象完全同時創建,則它們不共享相同的Id。
public class Apple {
static AtomicInteger nextId = new AtomicInteger();
private int id;
public Apple() {
id = nextId.incrementAndGet();
}
}
使用java.util.UUID.randomUUID()
它不是int
,但保證是唯一的:
表示不可變通用唯一標識符(UUID)的類。
如果您的對象以某種方式進行管理(例如通過某種持久性機制),則通常會出現管理器生成ID的情況 - 例如,從數據庫中獲取下一個ID。
相關: Jeff Atwood關於GUID (UUID) 的文章 。 但是,它與數據庫相關,但是從您的問題中不清楚您是否希望保留對象。
你有沒有想過使用UUID類。 您可以調用randomUUID()函數每次創建一個新的id。
還有另一種獲取唯一ID的方法。 不要使用int或其他數據類型,只需創建一個類:
final class ID
{
@Override
public boolean equals(Object o)
{
return this==o;
}
}
public Apple
{
final private ID id=new ID();
}
線程安全無需同步!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.