假设我有一个带有类型参数的抽象类Bar:
abstract class Bar[A] { def get: A }
我有一个想要实例化一些Bar
个对象的函数,调用它们的get
方法并返回结果:
def foo[A, B <: Bar[A]]: Seq[A]
将{A}作为单独的类型参数提供似乎有点冗长,因为它隐含在B
中。我真正想要的是说
def foo[B <: Bar[A]]: Seq[A]
但是没有编译。有没有办法让foo
更紧凑?
答案 0 :(得分:4)
丹尼尔在评论中说道。
也许使用抽象类型的成员将有助于减少冗长。
abstract class Bar {
type A
def get: A
}
def foo[B <: Bar]: Seq[B#A]
def baz[B <: Bar](b: B): Seq[B#A]
def taz[B <: Bar](b: B): Seq[b.A]