0

以下のコードで私がやろうとしていることを行うことは可能ですか:

class Foo extends SomeClass
class Bar extends SomeClass
def f[A<:SomeClass,B<:SomeClass](a:A,b:B):B = b
val a = new Foo
val b = new Bar

scala> Map[String,(_<:SomeClass)=>(_<:SomeClass)]("key"->f(a,b))
<console>:15: error: type mismatch;
 found   : Bar
 required: Function2[_ <: SomeClass, _ <: SomeClass, _ <: SomeClass]
              Map[String,(_<:SomeClass,_<:SomeClass)=>(_<:SomeClass)]("key"->fun(a, b))
                                                                            ^
4

2 に答える 2

0

の署名Mapが間違っています。そのはず:

  Map[String,(_<:SomeClass, _<:SomeClass)=> (_<:SomeClass)]("key" -> f)
于 2013-05-22T17:08:45.037 に答える