这是有问题的代码。下面包括一些描述/解释
对象功能{ 导入 scala.reflect.Manifest 私有 var 函数:List[(Manifest[_],Any,String)] = List() def add[T](desc: String,func: T)(隐式 m: Manifest[T]) { 函数 ::= (m,func,desc) } def get[T]()(隐式 m : Manifest[T]): List[(T,String)] = { 函数平面图 { case (t,f,s) => if (t <:< m) Some(f.asInstanceOf[T],s) else None } } def getInputs[T]()(隐式 m : Manifest[T]): List[(T => Any,String)] = { 函数平面图 { case (t,f,s) => if (t <:< (T => Any)) Some(f.asInstanceOf[T => Any],s) else None } }
基本上我的目标是拥有一个函数列表,保留它们的类型(输入和输出),并能够根据它们作为输入和作为输出的内容来搜索特定函数。我开始相信,如果没有某种猴子补丁,这在 scala 中是不可能的,我想避免这种情况。