我刚刚遇到了一个非常奇怪的行为。我想比较2个使用完全相同的日期d1.equals(d2);,但结果是错误的。
调试时,我发现两个日期的“快速时间”为1531951200000。之后,我将检查更改为d1.getTime() == d2.getTime()并得到了相等的结果。
我还检查equals()的方法,java.util.Date这确实几乎完全一样
public boolean equals(Object obj) {
return obj instanceof Date && getTime() == ((Date) obj).getTime();
}
Run Code Online (Sandbox Code Playgroud)
请注意,这两个对象都是类型java.util.Date这就排除了,有可能是一个区别,即java.util.DateVS java.sql.Date。还要注意,其中一个值是从数据库中读取的,而另一个是从文件中读取的。这两个值都设置为带有java.util.Date字段的同一类的不同实例。
有人对此有解释吗?还是我只是想念一些东西?
| 归档时间: |
|
| 查看次数: |
163 次 |
| 最近记录: |