相关疑难解决方法(0)

Scala和Java的Builder库

我需要一个可以从Scala和Java调用的构建器库.使用默认的命名参数在Scala中足够简单.但是如何从Java调用此代码?见下文.或者我应该使用更流行的两种语言更常见的API?

斯卡拉:

case class Person(gender:Gender.Value, firstName:String, lastName:String){
  def fullName = lastName+", "+firstName
  override def toString = firstName+","+lastName+","+gender
}
case class PersonBob(
  gender:Gender = GenderBob().build,
  firstName:String =  null,
  lastName:String = null) {
  def build = Person(
    gender,
    if(firstName == null) NameBob(if(gender==Gender.Male) engMaleNames 
      else engFemaleNames).build else firstName,
    if(lastName==null) NameBob(engLastNames).build 
      else lastName
    )
  }
Run Code Online (Sandbox Code Playgroud)

用法:

val p1 = PersonBob().build
val p2 = PersonBob(lastName = "Jones").build
Run Code Online (Sandbox Code Playgroud)

Java用法:

Person p1 = ?
Person p2 = ?
Run Code Online (Sandbox Code Playgroud)

java scala scala-java-interop

5
推荐指数
1
解决办法
770
查看次数

标签 统计

java ×1

scala ×1

scala-java-interop ×1