在编程过程中,我注意到以下行为。我希望这个代码段打印“他们是平等的”而不是打印“他们不相等”,有人可以解释这种行为吗?谢谢。
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()方法。
if ( originalUUID.equals( copiedUUID )) {
...
答案 1 :(得分:0)
只需将“==”更改为以下内容:
if(originalUUID.equals(copiedUUID)){
.
.