in kernel-api/src/main/scala/org/apache/toree/utils/DynamicReflectionSupport.scala [88:103]
private def getMethod(name: String, args: Any*): Option[Method] = {
val flatArgs = flatten(args)
val potentialMethods = klass.getDeclaredMethods.filter(_.getName == name)
val method: Option[Method] =
potentialMethods.foldLeft[Option[Method]](None) {
(current, m) =>
if (current != None) current
else if (m.getParameterTypes.size != flatArgs.size) current
else if (!m.getParameterTypes.zipWithIndex.forall {
case (c, i) => isCompatible(c, flatArgs(i).getClass)
}) current
else Some(m)
}
method
}