将嵌套case类中的scala集合转换为等效于java的

时间:2015-10-10 20:54:00

标签: scala scala-macros case-class scala-java-interop

我有一些案例类:

case class Address(street : String, state : String, zip : Option[Int])

case class Person(name : String, address : Option[Address], children : Seq[Person])

以及返回其中一个类的函数:

def getPerson() : Person

我想创建一个可以从Java调用的函数版本:

def getPersonJava() : JavaPerson

其中JavaPerson与案例类的字段相同,但Option为java 8 OptionalSeqjava.util.List或某些字段更合适的java集合类型。

当用户调用getPersonJava().address时,他们将获得一个类的实例,其中字段也已被转换。

有没有办法使用宏或其他方式转换这样的嵌套案例类,以便我不必手动编写转换?我无法更改案例类或getPerson函数。

0 个答案:

没有答案