使用静态方法Klass
fn1
class Klass {
static String fn1() => 'hello';
}
> Klass.fn1(); // hello
但是当Klass
被分配给变量时,调用方法fn1
将失败
var k = Klass;
> k.fn1() // "Unhandled exception: Class '_Type' has no instance method 'fn1'.
不太清楚这里发生了什么
答案 0 :(得分:2)
我不确定这里代码的意图是什么,但您可能希望使用dart:mirrors
反映调用fn1()
。我不相信你可以通过为变量分配Klass
来调用它。以下是如何做到这一点:
import 'dart:mirrors';
class Klass {
static String fn1() => 'hello';
}
main() {
final mirror = reflectClass(Klass);
print(mirror.invoke(#fn1, []).reflectee); // Prints 'hello'.
}
答案 1 :(得分:2)
一个简单的解决方法
class Klass {
static fn1(String name) {
return name;
}
fn1NonStatic(String name) {
return fn1(name);
}
}
Klass().fn1NonStatic("test");