Я использую 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)
Этот код отлично работает, но он очень уродлив и содержит много шаблонов.Я хотел бы использовать Scala Map[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
не может конвертировать вложенные объекты на карте.Есть ли способ конвертировать произвольную Карту Scala с другими Картами и Списками внутри в их эквиваленты Java?