3

我需要在我的应用程序中唯一标识消息。因此,每条消息都应该包含它的 id。不过我有几个问题..

  1. 消息是否应该私下生成它的 id 并且只为 id 提供 getter?
  2. 创建 id 的最佳方法是什么?java中UUID类的任何替代品?

谢谢。

4

2 回答 2

6
  1. 显然,ID 不应该有一个公共的设置器。让消息自己生成 ID 的另一种方法是在构造函数中传递它。
  2. 如果您的应用程序是分布式的,则 UUID 没有真正的替代品。如果它不是分布式的,AtomicInteger或者AtomicLong是可以在没有锁定的情况下同时使用的好选择。
于 2010-03-01T12:21:56.357 回答
2

如果没有更多上下文,我会回答:如果您担心速度,您总是可以有一个进程(在另一台机器上?)预先计算应用程序的 UUID。这样,应用程序可以快速访问 UUID 的“池”。

  1. 一个人不应该能够更改消息的 UID,否则有什么意义?

  2. UUID 类有什么问题?如果是关于速度,请参见上文。

于 2010-03-01T12:19:59.520 回答