Scala:使用泛型类型参数声明方法

标签 scala generics

Scala 中以下 Java 方法声明的等效项是什么:

public <T>  T readValue(java.lang.String s, java.lang.Class<T> tClass)

换句话说,我想声明一个方法,它接受一个类型为 T 的类,并返回该类型的一个实例。

最佳答案

  • I. 非常接近你想要的:
    def readValue[T:ClassTag](s:String):T = {
      val tClass = implicitly[ClassTag[T]].runtimeClass
      //implementation for different classes.
    }
    

    用法比Java更清楚一点:
    val myDouble = readValue[Double]("1.0")
    
  • 关于Scala:使用泛型类型参数声明方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18677283/

    相关文章:

    scala - Spark 数据帧 : Extract a column based on the value of another column

    scala - 如何获取不可变库的子类的对象(最佳实践)?

    C# 从匿名类型中选择字符串列表

    java - 创建用于管理和解析命令参数的参数处理程序

    java - 如果重写方法没有,为什么重写方法不能指定类型参数?

    c# 泛型重载方法分派(dispatch)不明确

    c++ - 具有接受派生类参数的基类参数的成员函数指针

    scala - 用于激发 Dataframe 的结果集

    Scala 排序选项

    scala - 显示类线性化的便捷方法?