我正在尝试从我收到的泛型类型调用静态方法。这甚至可能吗?
此外,我应用了类型约束,以便仅从其父类操作对象。
这是我试图实现的一个简短示例:
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>();
}
Run Code Online (Sandbox Code Playgroud) 假设我有:
class Test<T> {
void method() {
if (T is int) {
// T is int
}
if (T == int) {
// T is int
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以覆盖==运算符,但是如果我不覆盖任何运算符,Dart==和isDart之间的主要区别是什么。
编辑:
说我有
extension MyIterable<T extends num> on Iterable<T> {
T sum() {
T total = T is int ? 0 : 0.0; // setting `T == int` works
for (T item in this) {
total += item;
}
return total;
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用我的扩展方法时:
var …Run Code Online (Sandbox Code Playgroud)