Java枚举:覆写toString,再看equals、hashCode(二)

2014-11-24 09:17:08 · 作者: · 浏览: 1
out.println(Color.RED.equals("RED"));// false
System.out.println(Color.RED.equals(Color.BLUE));// false
// 同一个对象
System.out.println(Color.RED.equals(Color.RED));// true
// 实际是两个 String
System.out.println(Color.RED.toString().equals("RED"));// true
// 实际是两个 String
System.out.println(Color.RED.getName().equals("red color"));// true
// hashCode
System.out.println("Color.RED.hashCode = " + Color.RED.hashCode());
}

如果重写了类似上面的 toString 方法,那么

[java] view plaincopyprint
System.out.println(Color.RED.toString().equals("RED"));


返回的可能是 true,也可能是 false,这取决于你的 toString 具体实现。

如下面这种实现方法:返回 _name 的大写形式。


[java]
@Override
public String toString() {
return this._name.toUpperCase();
}


综上,建议根据需要可以重写 toString 方法,善用 equals 方法。