应该用==,因为equels会先比较类型,这样值一样的不同类型的数字就直接返回false啦。看源码吧。
public boolean equals(Object obj) { System.out.println(obj.getClass()); if(obj instanceof Long) { return value == ((Long)obj).longValue(); } return false; }