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") {
...
}

最佳答案 我认为类型别名应该有效:

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

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