繁体   English   中英

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

[英]Can I generate a unique id like this?

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

我不认为这很容易测试,所以我提出问题并希望有人思考它是否有效

对于使用时间戳,它有可能被复制,

对于使用对象哈希码,它也有可能被复制

  1. 多个对象引用指向同一个对象。
  2. 开发人员将覆盖对象hashCode方法,例如返回对象实例变量id,然后将其hashCode返回到内存中。 (通常重写equals方法通常会覆盖hashCode)

我个人更喜欢你使用UUID

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM