To clarify the "reflection" solution of @AlexeyRomanov, Scala (version 3.6.x) expects an instance as the first argument of the invoke method, as follows:
// assumes func has exactly one apply method, modify to taste
val instance = func.getClass.newInstance
val method = instance.getClass.getMethods.filter(_.getName == "apply").head
method.invoke(instance, arr: _*)