Is it possible to define a type alias that represents several data types?
package object scala {
type SingleDimension = Double
type MultiDimensionMap = Map[String, Double]
type MultiDimensionList = List[Tuple2[String, Double]]
}
eg. I need a suptertype type that lets you say DataDimension, which represent only the above three types. so i can do the following:
trait AbstractDataWorker[T] {
def formula(d: Double): T
}
class multiDimensionWorker extends AbstractDataWorker[MultiDimensionMap] {
type T = MultiDimensionMap
override def formula(d: Double): MultiDimensionMap = {
Map[String, Double]()
}
}
class singleDimensionWorker extends AbstractDataWorker[SingleDimension] {
type T = SingleDimension
override def formula(d: Double): SingleDimension = {
2.0
}
}
But the following should give a compilation error. He is currently working.
class stringDimensionWorker extends AbstractDataWorker[String] {
type T = String
override def formula(d: Double): String = {
"hello"
}
}
source
share