我需要一些方法来使用类的类型参数定义类内的类型别名。
class ToMap[Key, Value] {
type MapType = Map[Key, Value]
}
val z: ToMap[Int, Int].MapType = Map((1, 1))
此示例无法工作,因为type MapType
是类型成员,而不是类型别名,因此它不会编译。
是否有其他方法允许使用泛型类获得类型别名?
通常,我需要一些方法来使用泛型类的类型来获得不同的类型,即进行某种类型的转换。之后,我希望将转换后的类型作为其他类的类型参数重用。
发布于 2016-01-18 17:38:01
我的猜测是,您希望使用路径依赖类型:
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))
https://stackoverflow.com/questions/34860612
复制相似问题