继承中的默认类型参数

时间:2017-03-13 19:43:51

标签: scala

说我有以下课程:

class A[T] { ... }

abstract class B[T1,T2](t: T1)(implicit ev: A[T2]) {
... 
}

在某些情况下,当我从B继承时,T2的类型与T1的类型相同。有没有我可以定义我的类以避免必须明确指定它?

所以而不是必须这样做:

class C extends B[String, String]("Some string") {
...
}

我可以让编译器有一些推断,所以我只需要写:

class C extends B("Some string") {
...
}

1 个答案:

答案 0 :(得分:2)

我认为类型别名应该有效:

type B1[T] = B[T, T]

class C extends B1("Some string") {
   ...
}