我在项目中使用Scala,想与Stripe集成,但它只提供Java API。例如,要创建会话,我使用:
val params = new util.HashMap[String, AnyRef]
val paymentMethodTypes = new util.ArrayList[String]
paymentMethodTypes.add("card")
params.put("payment_method_types", paymentMethodTypes)
params.put("mode", "setup")
params.put("success_url", "https://test.app/success")
params.put("cancel_url", "https://test.app/cancel")
val session = Session.create(params)
这段代码运行得很好,但是非常丑陋并且包含很多样板文件。我想使用 ScalaMap[String, AnyRef]并创建会话,如下所示:
import scala.collection.JavaConverters._
val params2: Map[String, AnyRef] = Map(
"payment_method_types" -> List("card"),
"mode" -> "setup",
"success_url" -> "https://test.app/success",
"cancel_url" -> "https://test.app/cancel"
)
val session2 = Session.create(mapAsJavaMap[String, AnyRef](params2))
事实证明,mapAsJavaMap无法转换Map中的嵌套对象。有没有办法将任意 Scala Map 与其他 Maps 和 Lists 转换为 Java 等效项?
函数式编程
慕标5832272
相关分类