Scala擦除类类型参数

我有以下设置:

class Test[A](function: A => String) {
   def process(data: Any) {         //has to be Any since it is user IO
      if (data of Type A) 
          function(data)
   }
}

我似乎无法让类型检查工作。我尝试将一个隐式TypeTag添加到Test [A],但无法从过程中访问它。是否可以在过程函数中与Test的类型参数进行匹配?

j

为此,请使用ClassTagmatch

import scala.reflect.ClassTag

class Test[A : ClassTag](function: A => String) {
  def process(data: Any) { //has to be Any since it is user IO 
    data match {
      case data: A => function(data)
      case _       =>
    }
  }
}

由于ClassTag范围的隐式即使可以通用match也可以区分A

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获取类中类型参数的擦除类型

来自分类Dev

案例类的Scala类型擦除如何解决

来自分类Dev

Scala中的类型擦除

来自分类Dev

Scala isInstanceOf和类型擦除

来自分类Dev

Scala的getClass和类型擦除?

来自分类Dev

Scala类型参数和案例类

来自分类Dev

如何解决此Scala函数参数类型擦除错误?

来自分类Dev

Scala:引用类的嵌套类型,它是泛型的类型参数

来自分类Dev

在Scala中将参数类型隐式地用于类型类

来自分类Dev

多重函数中的类型擦除,scala

来自分类Dev

使用 TypeTag 克服 Scala 中的类型擦除

来自分类Dev

具有不同参数类型的Scala案例类

来自分类Dev

Scala:如何使用类型参数化在类内部进行打印

来自分类Dev

类型参数的Scala特征运行时类

来自分类Dev

如何在Scala中访问类的类型参数

来自分类Dev

在Scala中访问类型参数的类级值

来自分类Dev

具有类型化参数的类上的Scala模式匹配

来自分类Dev

Scala宏注释-具有类型参数的案例类

来自分类Dev

Scala Akka:使用子类型参数实现抽象类

来自分类Dev

Scala-抽象基类中的参数类型,可以扩展

来自分类Dev

Scala宏注释-具有类型参数的案例类

来自分类Dev

如果未指定类型参数,为什么Java泛型原始类会擦除对象的所有泛型?

来自分类Dev

Scala 类型检查/断言作为函数与 JVM 类型擦除

来自分类Dev

类型擦除导致扩展功能的参数类型丢失

来自分类Dev

传播Scala类型参数

来自分类Dev

Scala:缺少参数类型

来自分类Dev

Scala子类型参数

来自分类Dev

Scala类型参数在各地

来自分类Dev

Scala - 方法类型参数