Solución:
No puede crear una instancia de una clase a partir de un Type
objeto que representa la clase, al menos no sin espejos (y ni Flutter ni la plataforma web admiten espejos).
No puede arrancar un constructor (sin embargo, espero que agreguemos esa característica en algún momento), por lo que la opción de crear una función auxiliar estática que llame al constructor y pasar la función auxiliar es la mejor solución actual.
Si conoce la cantidad de argumentos requeridos por dicha función, no necesita usar Function.apply
, puedes llamarlo directamente.
Puede eliminar una función si no agrega los paréntesis ()
. No necesitas dart:mirror
.
void main() {
// Tear off a global function
Function myFunction = MyClass.someStaticFunction;
// Call it statically
myFunction('arg');
// Call it dynamically
Function.apply(myFunction, ['arg']);
// Tear it off with a precise Function Type
void Function(String) myFunction2 = MyClass.someStaticFunction;
}
class MyClass {
static void someStaticFunction(String someArg) {
print('someStaticFunction $someArg');
}
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)