我可以生成这样的唯一ID吗?

时间:2019-01-07 03:51:02

标签: java

我正在学习springboot项目,我想知道是否可以使用业务类的时间戳+ hascode返回值获取其对象的地址。可以吗?

我认为测试不容易,所以我提出了一个问题,希望有人考虑一下是否可行

1 个答案:

答案 0 :(得分:0)

使用时间戳记,可以复制它,

对于使用对象哈希码,如果

,它也有可能被复制
  1. 多个对象引用指向同一对象。
  2. 开发人员会覆盖对象hashCode方法,就像返回对象实例变量id而不是其在内存中的hashCode一样。 (通常,覆盖equals方法通常也会覆盖hashCode)

我个人更希望您使用UUID

UUID uuid = UUID.randomUUID();
String uniqueId = uuid.toString() + "_" + objectReference.hashCode();

如果需要时间,可以在哈希码后面连接另一个时间戳字符串,然后可以使用String类的split函数按需检索它们, UUID类提供了一种生成唯一ID的方法,这种ID极少被复制。

参考: https://www.baeldung.com/java-uuid