Hep*_*tic 15 scala scala-java-interop
我正在使用一些java.util.Date(它实现java.lang.Comparable)并且希望能够很好地使用它,例如使用<和> =而不是"compareTo(other)== 1".有没有一种很好的方法可以很容易地混合scala.math.Ordered之类的东西没有很多锅炉板?
Gar*_*owe 13
在Ordering伴侣对象中,存在从Comparable [A]到Ordering [A]的隐式转换.所以你可以这样做:
import java.util.Date
val dateOrdering = implicitly[Ordering[Date]]
import dateOrdering._
val now = new Date
val then = new Date(now.getTime + 1000L)
println(now < then) // true
Run Code Online (Sandbox Code Playgroud)
小智 8
我知道这是一个老问题,但这是一个稍微简单的解决方案,当提出问题时可能无法提供.
import scala.math.Ordering.Implicits._
Run Code Online (Sandbox Code Playgroud)
Comparable然后,任何实现的Java类型都应该与比较运算符无缝地协作.例如,
import java.time.Instant
val x = Instant.now()
val y = x.plusSeconds(1)
print(x < y) // prints true
print(x <= y) // prints true
print(x > y) // prints false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2821 次 |
| 最近记录: |