gpt4 book ai didi

java - 枚举 equals() 和 ==

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:05:42 26 4
gpt4 key购买 nike

<分区>

enum Drill{
ATTENTION("Attention!"), AT_EASE("At Ease");
private String str;
private Drill(String str){
this.str = str;
}
public String toString(){
return str;
}
}
public class EnumExample {
public static void main(String[] args) {
Drill d1= Drill.valueOf("ATTENTION");
Drill d2= Drill.valueOf("ATTENTION");
**System.out.println(d1.equals(d2));//TRUE
System.out.println(d1==d2);//TRUE**
System.out.println(Drill.ATTENTION.equals(Drill.valueOf("ATTENTION")));
System.out.println(Drill.ATTENTION.equals(Drill.AT_EASE));//FALSE
System.out.println(Drill.ATTENTION==Drill.valueOf("ATTENTION"));//TRUE
System.out.println(Drill.ATTENTION==Drill.AT_EASE);//FALSE
}
}

使用 == 和 equals() 时的枚举行为似乎是相同的。据我所知,== 只是检查引用资料。因此 d1 == d2 应该是 FALSE。谁能解释这种行为为什么是真的?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com