回答
在你的苹果类有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's article on GUIDs(UUIDs)。不过,它与数据库相关,但从您的问题中不清楚您是否希望持久化对象。
+1,用于群集安全解决方案。 – 2010-10-24 18:06:38
还有另一种获取唯一ID的方法。而不是使用int或其他数据类型,只需创建一个类:
final class ID
{
@Override
public boolean equals(Object o)
{
return this==o;
}
}
public Apple
{
final private ID id=new ID();
}
线程安全无需同步!
不错,但不是当需要可比ID时。 – Jarekczek 2012-05-30 13:08:26
- 1. unproxy Hibernate对象的优雅方式
- 2. 在Java中做对象转换的简单/优雅的方法?
- 3. 优雅的方式来“YYYY-MM”转换为Date对象在Java中
- 4. 优雅的方式
- 5. 优雅的方式
- 6. 最优雅的方式来添加从Java中的矢量不同的对象
- 7. 实现抽象类的优雅方式
- 8. 分块数据的优雅方式
- 9. 在C++中迭代的优雅方式
- 10. 访问对象属性的更优雅或有效的方式?
- 11. 比较执行对象的更优雅的方式可比
- 12. 筛选对象的复杂阵列优雅的方式
- 13. 根据其他值设置对象的更优雅的方式
- 14. 优雅的方式来测试新的对象创建
- 15. 优雅的方式失败
- 16. 最优雅的方式来创建一个JSON对象
- 17. 在python中打印“====中间对齐标题====”的优雅方式
- 18. 优雅对象比较
- 19. 优雅对象扩展
- 20. 在Python中分析日期的优雅方式
- 21. 让UI对象在联合5中触及的最优雅方式是什么?
- 22. 如何在python中以优雅的方式动态创建对象?
- 23. 优雅地重新附加方法在web worker中对象?
- 24. Ruby中更优雅的方式
- 25. 最优雅的方式做在Haskell
- 26. Java Thread.suspend()优雅
- 27. Django:优雅的方式来处理缺失的ID不是404()
- 28. 使用CUBEVALUE公式的优雅方式
- 29. 切换在Java 1.6的优雅方式为字符串
- 30. 如何以优雅的方式“改变”大对象中的单个值?
你的Apple类是什么样的? – BoltClock 2010-10-24 17:59:38
如何使用UUID? http://download.oracle.com/javase/1.5.0/docs/api/java/util/UUID.html – miku 2010-10-24 18:01:37
你可以创建一个全局计数器,并在构造函数中分配id。我不确定这是否是最好的主意。 – Orbit 2010-10-24 18:01:53