2013-06-24 62 views
0

在編程過程中,我注意到以下行爲。我希望這段代碼能打印出「他們是平等的」,而不是打印出「他們不相等」,誰能解釋這種行爲?謝謝。轉換爲字符串後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"); 
    } 
} 
+0

同樣的問題。但是,這些不是字符串。 –

回答

3

==運算符測試兩個引用指向同一個對象 - 而不是兩個對象是否相等。

如果要測試對象相等性,請使用由UUID類定義的equals()方法。

​​
0

只要改變你的 「==」 於以下內容:

if(originalUUID.equals(copiedUUID)){ 
. 
. 
相關問題