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]
그러나 유형 불일치 오류로 컴파일되지 않습니다. 물론 변환 함수를 명시 적으로 호출 할 수는 있지만 암시 적 변환기를 사용하는 목적에 위배됩니다. 내가 원하는 것을 할 수있는 방법이 있습니까?
유형 주석을 다른 위치에 배치해야합니다 routeScala.shape.map(p => p: Position)
.. 그러나 나는 이것이 단지 글을 쓰는 것보다 덜 명확하다고 말하고 싶습니다 routeScala.shape.map(PositionScala.toJava)
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다