越来越类型消除编译器警告匹配任何人都可以重新编写此代码做同样的事情,但没有任何编译器警告,请: -我怎么能一个函数签名,而不在斯卡拉
object TestTypeErasure {
def main(args:Array[String]) {
def myFunction(myObject:Any):Boolean = {
true
}
val myVariable: (Any => Boolean) = myFunction
myVariable match {
case function:(Any => Boolean) => println("Match")
}
}
}
千thankyous
Keith
更新!!!!对不起,这是一个真正的散列。它我的SO
第一个问题,只是为了让大师们知道我已经沿着这个线路也无济于事试过的东西: - (不能编译)
object TestTypeErasure {
def doTest(parameter: Any) = {
parameter match {
case function:Function1[_, _] => function("Whatever")
}
}
def main(args:Array[String]) {
}
}
我得到错误: -
TestTypeErasure.scala:6: error: type mismatch;
found : java.lang.String("Whatever")
required: _
case function:Function1[_, _] => function("Whatever")
^
one error found
再次感谢
基思
嗨 我已经采取了看那个。我尝试了最佳答案。接下来的困难是我想调用这个函数。 如果我改变代码来实际调用下面的函数,我得到一个编译器错误。有谁知道我怎么能解决这个 对象TestTypeErasure { 高清doTest(参数:任何)= { 参数匹配{ 情况下功能:功能1 [_,_] =>函数( “什么”) } } 高清主(参数:数组[字符串]){} } 再次感谢 基思 – Keith 2010-01-25 15:42:33