Как создать Shapeless HMap из списка var arg - PullRequest
1 голос
/ 04 октября 2019

Я создаю бесформенный HMap, используя код, подобный приведенному ниже, из scala-упражнения.

import shapeless.HMap

class BiMapIS[K, V]
implicit val intToString = new BiMapIS[Int, String]
implicit val stringToInt = new BiMapIS[String, Int]

val hm = HMap[BiMapIS](23 -> "foo", "bar" -> 13)

Я хотел бы создать HMap из переменных аргументов, как показано ниже (у менядлинный список аргументов, поэтому просто проверяю, могу ли я упростить код littlebit) -

import shapeless.{HMap, HNil}
import java.util.{List => JList}
val entities: JList[(_, _)] = ???
class BiMapIS[K, V]
implicit val intToString = new BiMapIS[Int, String]
implicit val stringToInt = new BiMapIS[String, Int]
import collection.JavaConverters._
val entitiesSeq = entities.asScala.toList
val hm = HMap[BiMapIS](entitiesSeq:_*)

Можно ли как-нибудь создать HMap из переменных аргументов?

Я использую Shapeless 2.33 сСкала 2.12 https://mvnrepository.com/artifact/com.chuusai/shapeless_2.12/2.3.3

1 Ответ

2 голосов
/ 04 октября 2019

Попробуйте

val entitiesSeq = entities.asScala.toMap[Any, Any]
val hm = new HMap[BiMapIS](entitiesSeq)
...