小编Mag*_*pie的帖子

如何保存TypeTag,然后再使用它将类型重新附加到Any(Scala 2.10)

我正在尝试制作自定义异构列表和地图.虽然有使用Manifest的例子,但是Scala 2.10它们已被弃用,我应该使用TypeTags(或Classtags).在地图的情况下,似乎我可以使用(比如)元组字符串 - >(TypeTag [_ <:Any],Any)保留Any与Type的绑定.

我的问题是如何从恢复的TypeTag和未定义的T中获取,以便能够返回TypeTag.tpe的实例 - 在我所拥有的代码中 //** How do I use saved typeTag to define T here?**

如上所述,方法get中没有编译器错误,但T设置为Nothing并返回Some(Nothing).我希望我的注释掉的行能够工作: case Some( x ) => // println( "Get 2*'pi'=" + x*2 )有一个编译器消息,"value*不是Nothing的成员".我意识到我可以更紧凑地编写,但是完成之后,我可以在我的IDE中鼠标悬停并按照一步一步进行操作.有一个相关的问题 - Scala:什么是TypeTag以及如何使用它? 但它似乎没有走"最后一英里" - 重新选择任何一个.

这该怎么做?

这是我到目前为止的代码:

import scala.reflect._
import scala.reflect.runtime.universe._
import collection.mutable.Map

object Test extends HMap {

  def main( args: Array[ String ] ) {

    var hmap = new HMap
    hmap( "anInt" ) = 1
    hmap( "pi" ) = 3.1416f
    hmap( "c" ) = "hello" …
Run Code Online (Sandbox Code Playgroud)

scala scala-2.10

5
推荐指数
1
解决办法
1198
查看次数

标签 统计

scala ×1

scala-2.10 ×1