我需要一些方法来使用类型参数
在类中定义类型别名class ToMap[Key, Value] {
type MapType = Map[Key, Value]
}
val z: ToMap[Int, Int].MapType = Map((1, 1))
此示例不起作用,因为type MapType
是类型成员,而不是类型别名,因此它不会编译。
是否有其他方法可以使用泛型类获取类型别名?
一般来说,我需要一些方法来使用一种泛型类来获得不同的类型,即进行一些类型转换。然后我想重用转换后的类型作为其他类的类型参数。
答案 0 :(得分:4)
我的猜测是你想要使用路径依赖类型:
class ToMap[Key, Value] {
type MapType = Map[Key, Value]
}
val a = new ToMap[Int, Int]
val z: a.MapType = Map((1, 1))
或
val z2: ToMap[Int, Int]#MapType = Map((1, 1))