【发布时间】:2014-01-08 17:22:55
【问题描述】:
正如您在下面看到的,在序列化和反序列化之后,您会得到据称不同的 DateTime 实例:
scala> import org.joda.time.DateTime
import org.joda.time.DateTime
scala> val a = new DateTime()
a: org.joda.time.DateTime = 2014-01-08T19:00:08.883+02:00
scala> val b = DateTime.parse(a.toString())
b: org.joda.time.DateTime = 2014-01-08T19:00:08.883+02:00
scala> a == b
res0: Boolean = false
根据AbstractInstant's javadoc、equals,“根据毫秒瞬间、年表和时区,将此对象与指定对象进行比较是否相等。”所以这不应该发生对吗?我错过了什么?
【问题讨论】:
-
会不会是因为你是在比较
==而不是equals? -
如果您使用的是 Scala,您是否可以相应地标记您的问题以避免混淆。
-
@gtgaxiola @RakeshKR,实际上,在 Scala 中,
==是Any上调用equals的最终方法。
标签: scala datetime serialization deserialization jodatime