我有一个 val hm: HashMap[org.joda.time.DateTime, MyType]
,我想通过 hm.keys.min
和 hm.keys.max
获取集合中的第一个和最后一个 DateTime
,但编译器提示 No implicit Ordering defined for org.joda.time.DateTime
。如何定义这个排序(隐式和显式选项都很有趣)?
我有一个 val hm: HashMap[org.joda.time.DateTime, MyType]
,我想通过 hm.keys.min
和 hm.keys.max
获取集合中的第一个和最后一个 DateTime
,但编译器提示 No implicit Ordering defined for org.joda.time.DateTime
。如何定义这个排序(隐式和显式选项都很有趣)?
object Joda {
implicit def dateTimeOrdering: Ordering[DateTime] = Ordering.fromLessThan(_ isBefore _)
}
// elsewhere
import Joda._
dateTimes.sorted
libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "1.8.0"
你可以直接导入OrderingImplicits
。要么一次性导入所有内容:
import com.github.nscala_time.time.OrderingImplicits._
或者一个特定的:
import com.github.nscala_time.time.OrderingImplicits.DateTimeOrdering