【发布时间】:2016-02-25 11:36:44
【问题描述】:
我有一个 Scala 案例类和一个相应的 Java 类。我已经声明了从 Scala 类到 Java 类的隐式转换。现在我有一个 Scala 类的 Scala 集合,我想将它们转换为 Java 类的 Scala 集合。隐式转换可以吗?这是我尝试过的,也许是天真的:
case class PositionScala(latitude: Double, longitude: Double)
object PositionScala {
implicit def toJava(p: PositionScala): Position = new Position(p.latitude, p.longitude) // Position is the Java class
}
...
val p: List[Position] = routeScala.shape.map(p => p)
// routeScala.shape is List[PositionScala]
但它不会因类型不匹配错误而编译。当然我可以显式调用转换函数,但这违背了使用隐式转换器的目的。有没有办法做我想做的事?
【问题讨论】:
标签: scala implicit-conversion scala-collections