我在Scala中具有以下参数函数:
implicit class X(str: String) {
def toPositiveNumeric[T >: Int with Long with Float with Double <: AnyVal]
(implicit ev: T => Ordered[T], ctag: ClassTag[T]): T = ???
}
我想调用一个单元测试,在那里我将有各种类型和值:
Array(Array(Int.getClass, "123"), Array(Double.getClass, "123"))
.foreach { case Array(tpe, str) =>
assert(str.toPositiveNumeric[tpe] == 123.asInstanceOf[tpe])
这确实按原样起作用,因为tpe
在这些地方不起作用。有什么方法可以使这项工作正常进行吗?或者这种混合运行时和编译时间的方式很难处理?