我正在尝试从收到的泛型类型中调用静态方法。
这可能吗?
此外,我应用了类型约束,以便仅从其父类操作该对象。
这是我想要实现的目标的一个简短示例:
class A {
static func() {
print("A");
}
}
class B extends A {
static func() {
print("B");
}
}
concret<T extends A>() {
T.func(); // I expected a print('B')
}
main() {
concret<B>();
}
不,这是不可能的。
Dart 静态方法调用在编译时解析,因此不可能在仅在运行时具有值的类型变量上调用它们。
如果可以的话,那就完全不安全了。任何人都可以创建班级C
延伸A
它没有静态func
成员并调用concret<C>();
。由于静态成员不是继承的,因此它必须给您一个运行时错误,并且您无法在编译时检测到该错误。这是不允许的主要原因。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)