我目前正在开发一个 Scala 应用程序,它利用 Spring-Boot 和 Swagger 来发送和接收 REST 调用。Swagger 和 Spring-Boot 是纯 Java 项目,与 Scala 的兼容性有限,但我似乎找到了解决该问题的方法。由于 Spring-Boot 和 Swagger 将请求作为 Java 对象处理(需要 setter 和 getter 才能工作),因此我必须将请求视为 Java 对象并将请求转换为稍后的请求。这是我所做的非常简化的版本:case class ParamsAsJava(includeMovies: java.lang.Boolean = java.lang.Boolean.FALSE, includeTvShows: java.lang.Boolean = java.lang.Boolean.FALSE) { def toScala(): Params = { Params( includeMovies = convertToScala(includeMovies), includeTvShows = convertToScala(includeTvShows) ) } private def convertToScala(test: java.lang.Boolean): Boolean = if (test == null) false else test.booleanValue}case class Params(includeMovies: Boolean = false, includeTvShows: Boolean = false)object Application extends App { val test1 = ParamsAsJava(java.lang.Boolean.FALSE, java.lang.Boolean.TRUE).toScala val test2 = ParamsAsJava(java.lang.Boolean.TRUE, java.lang.Boolean.TRUE).toScala val test3 = ParamsAsJava().toScala val test4 = ParamsAsJava(null, null).toScala val test5 = ParamsAsJava(null, java.lang.Boolean.TRUE).toScala println(s"Test 1 = $test1") println(s"Test 2 = $test2") println(s"Test 3 = $test3") println(s"Test 4 = $test4") println(s"Test 5 = $test5")}输出测试 1 = 参数(假,真)测试 2 = 参数(真,真)测试 3 = 参数(假,假)测试 4 = 参数(假,假)测试 5 = 参数(假,真)好的...我的问题是:有没有更简单易读的方法来实现这一目标?我每次都必须调用 ParamsAsJava.toScala 还是有一些很棒的 Scala 方法可以做到这一点?
添加回答
举报
0/150
提交
取消