Instant.toEpochMilli()可以用作唯一id吗?

hum*_*der 0 java uniqueidentifier java.time.instant

我必须生成一个唯一的 ID,该 ID 也是可读的,因此不能使用 UUID。所以我想到了使用Instant.toEpochMilli()。可以用作唯一ID吗?

ole*_*nik 5

不,我个人遇到过这样的情况,即两个对象具有相同的 id。我已经测试过System.nanoTime(),看起来不错,但在一般情况下,两种变体都不正确。

正确的解决方法:

  • UUID.randomUUID()
  • AtomicLong
  • 数据库序列