【发布时间】:2014-03-11 09:52:35
【问题描述】:
我想将String 与Enum 进行比较。我知道如何正确进行比较,但我不明白为什么。我的以下示例显示了我的问题:
enum Foo{
TEST1
}
String likeEnumTest1 = "TEST1";
System.out.println("Is enum equal string?: " + likeEnumTest1.equals(Foo.TEST1));
System.out.println("Is enum.toString() equal string?: " + likeEnumTest1.equals(Foo.TEST1.toString()));
System.out.println("Value of enum '" + Foo.TEST1 + "' and value of string '" + likeEnumTest1+"'");
输出是:
枚举是否等于字符串?:假
enum.toString() 是否等于字符串?:true
枚举“TEST1”的值和字符串“TEST1”的值
我知道在System.println() 中使用Enum.toString() 时,它被称为隐式,但与第二行中的equals() 相比,我不明白Enum 用作值是什么。 Foo.TEST1 是用作Integer 还是其他什么,JAVA 在内部做什么?
【问题讨论】: