我有一些案例类:
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 Optional
,Seq
为java.util.List
或某些字段更合适的java集合类型。
当用户调用getPersonJava().address
时,他们将获得一个类的实例,其中字段也已被转换。
有没有办法使用宏或其他方式转换这样的嵌套案例类,以便我不必手动编写转换?我无法更改案例类或getPerson
函数。