簡體   English   中英

在Scala中,如何創建TypeTag [Map [A​​,B]],而只有TypeTag [A]和TypeTag [B]可用?

[英]In Scala, How to create TypeTag[Map[A,B]], while only TypeTag[A] and TypeTag[B] are available?

假設類型A和類型B在運行時都被擦除並且未知。

有沒有一種方法可以構造TypeTag [Map [A​​,B]]?

最好只使用顯式構造函數,因為在我的真實代碼中,A和B都是通配符(可以將類型參數分配給調用它們的2個函數,但是為什么只使用一次卻要提取2個方法呢?

謝謝你的想法。 任何建議表示贊賞。

最好只使用顯式構造函數,因為在我的真實代碼中,A和B都是通配符

尚不完全清楚,但是您是說您擁有tagA: TypeTag[_]tagB: TypeTag[_]嗎? 如果是這樣,那么你可以做

(tagA, tagB) match {
  case (tagA: TypeTag[a], tagB: TypeTag[b]) =>
    implicit val tagA1 = tagA
    implicit val tagB1 = tagB
    typeTag[Map[a, b]]
}

有點丑陋和笨拙,但我認為目前還沒有更好的方法(並且很樂意學習其他方法)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM