有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'.
不太清楚这里发生了什么
有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'.
不太清楚这里发生了什么
一个简单的解决方法
class Klass {
static fn1(String name) {
return name;
}
fn1NonStatic(String name) {
return fn1(name);
}
}
Klass().fn1NonStatic("test");
我不确定这里代码的意图是什么,但您可能想使用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'.
}