【发布时间】:2018-10-02 07:15:51
【问题描述】:
大家好,
我需要创建一个带有 Typed 函数的 Typed Class 来解析一个 Array[String] 并返回一个 Array[OutputType]
class Data()
class IntData(var element: Int) extends Data
class BoolData(var element: Boolean) extends Data
class ArrayParser[OutputType <: Data]() {
def parse(in: Array[String]): Array[OutputType] = {
in.map(s => parseRecord(s))
}
}
我试过了:
def parse(in: Array[String]): Array[OutputType] = {
in.map(s => {
import scala.reflect.runtime.universe._
if (typeOf[OutputType] =:= typeOf[IntData])
new IntData(s.toInt)
else
new BoolData(s.toBoolean)
})
}
但我得到了错误:Array[Data] 类型的表达式不符合预期的 Array[OutputType] 类型
我可以做些什么来达到要求?
感谢您的帮助。
【问题讨论】:
标签: scala constructor apply typed