Given:
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
}
I should be able to do something like this, right?
Baz.something(classOf[FooBar])
Strangely this is throwing:
inferred type arguments [Nothing,this.FooBar] do not conform to method something's type parameter bounds [T,U <: this.Foo[T]]
Which is weird :S. BTW I'm having this issue while migrating some java code that's equivalent to what I write here and it's working fine.