我所知道的TypeTags就是他们以某种方式取代了Manifest.互联网上的信息很少,并没有让我对这个主题有很好的认识.
所以,如果有人在TypeTag上分享了一些有用的资料,包括例子和流行的用例,我会很高兴.我们也欢迎详细的解答和解释.
从Scala 2.7.2开始,有一些叫做ManifestJava类型擦除的解决方法.但是,如何Manifest确切地工作以及为什么/何时需要使用它?
Jorge Ortiz 的博客文章Manifests:Reified Types解释了其中的一些内容,但它没有解释如何将它与上下文界限一起使用.
那么ClassManifest,有什么区别Manifest?
我有一些代码(一个更大的程序的一部分,不能轻易地包含在这里),它有关于类型擦除的一些警告; 我怀疑我可以通过使用清单解决这些问题,但我不确定如何解决.
我有一种class Operator[T: TypeTag : ClassTag]方法,我想在参数化类型上使用Scala的模式匹配T。我知道模式匹配的工作原理,因此在Scala的repl中尝试了以下操作,并得到了一个错误。
scala> def matchTest() = T match {
| case x: String => "abcd"
| case _ => null
| }
<console>:11: error: not found: value T
def matchTest() = T match {
^
Run Code Online (Sandbox Code Playgroud)