鉴于:
class Foo[T] {
def get: T
}
class Bar
class FooBar extends Foo[Bar] {
def get = new Bar
}
object Baz {
def something [T, U <: Foo[T]] (foo : Class[U]): T = foo.newInstance.get
}
我应该能够做这样的事情,对吧?
Baz.something(classOf[FooBar])
奇怪的是,这是抛出:
inferred type arguments [Nothing,this.FooBar] do not conform to method something's type parameter bounds [T,U <: this.Foo[T]]
这很奇怪:S。顺便说一句,我在迁移一些与我在这里编写的代码等效的 Java 代码时遇到了这个问题,并且运行良好。