Предположим, что все T1, T2 и T3 имеют статические функции f1, f2, f3, которые я хотел бы назвать в общем.Как передать тип функции и вызвать ее статические методы?
Как можно легко достичь этого?
class T1 {
static f1(i) => i+1;
static f2(i) => i+1;
static f3(i) => i+1;
}
class T2 {
static f1(i) => i+2;
static f2(i) => i+2;
static f3(i) => i+2;
}
class T3 {
static f1(i) => i+3;
static f2(i) => i+3;
static f3(i) => i+3;
}
callGenerically(dynamic type) {
print(type);
type.f1(type.f2(type.f3));
}
main() {
callGenerically(T1);
callGenerically(T2);
callGenerically(T3);
}
Это печатает T1, поэтому он получает тип. Просто не знаю, как вызвать на нем статические функции. Является ли зеркало опцией или требованием, даже если ожидается, что f1, f2, f3 существуют?
Я просто хочу сказать, что это - в общем - не очень хороший образец. Если вы не пытаетесь сделать это (или это не просто языковой эксперимент), попробуйте выбрать другой подход без 'dart: mirror'. – filiph
Почему у вас 3 'typedef' не работает в вашем сценарии? Вы можете передать 3 (функциональные) ссылки и составить способ, который вам нужен. –