要比较UUID,我可以使用==或必须使用UUID.equals(UUID)吗?

 橘子火4 发布于 2023-01-15 17:43

刚开始使用java.util.UUID.我的问题是,如果我有两个UUID变量,比如u1和u2,我想检查它们是否相等,我可以安全地使用表达式u1 == u2还是必须写u1.equals(u2)?假设两者都不为空.

顺便说一句,我正在使用它的randomUUID方法来创建新的UUID值,但我认为这应该不重要.我想知道UUID是唯一的,每个值都可以是单例,然后使用它是安全的u1 == u2.

void method1(UUID u1, UUID u2) {

   // I know it is always safe to use equal method
   if (u1.equals(u2)){ 
     // do something
   }

   // is it safe to use  ==
   if (u1 == u2) {
     // do something
   }
}

user253751.. 58

这取决于:你想要哪种平等?

UUID a = new UUID(12345678, 87654321);
UUID b = new UUID(12345678, 87654321);
UUID c = new UUID(11111111, 22222222);

System.out.println(a == a); // returns true
System.out.println(a.equals(a)); // returns true

System.out.println(a == b); // returns false
System.out.println(a.equals(b)); // returns true

System.out.println(a == c); // returns false
System.out.println(a.equals(c)); // returns false

a == b只有当ab是同一个对象时才是真的.如果它们是两个相同的对象,它仍然是错误的.

a.equals(b)如果ab是相同的UUID值,则为true - 如果它们的两个部分相同.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有