转换为字符串后无法识别Java UUID

时间:2013-06-24 17:55:53

标签: java uuid

在编程过程中,我注意到以下行为。我希望这个代码段打印“他们是平等的”而不是打印“他们不相等”,有人可以解释这种行为吗?谢谢。

public static void main(String[] args){
    UUID originalUUID = UUID.randomUUID();
    String string     = originalUUID.toString();
    UUID copiedUUID   = UUID.fromString(string);
    System.out.println("Original: " + originalUUID);
    System.out.println("Copy    : " + copiedUUID);
    if(originalUUID == copiedUUID){
        System.out.println("They are equal");
    }else{
        System.out.println("They are not equal");
    }
}

2 个答案:

答案 0 :(得分:3)

==运算符测试两个引用指向同一个对象 - 而不是两个对象是否相等。

如果要测试对象相等性,请使用由UUID类定义的equals()方法。

 if ( originalUUID.equals( copiedUUID )) {
    ...

答案 1 :(得分:0)

只需将“==”更改为以下内容:

if(originalUUID.equals(copiedUUID)){
.
.