0

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

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");
    }
}
4

2 回答 2

3

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

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

 if ( originalUUID.equals( copiedUUID )) {
    ...
于 2013-06-24T17:56:22.743 回答
0

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

if(originalUUID.equals(copiedUUID)){
.
.
于 2013-06-24T17:58:34.433 回答