【发布时间】:2023-04-03 06:29:01
【问题描述】:
我想调用一个具体类的构造函数,但我只有一个实现接口的Type。是否可以从 Type 获取具体类并调用其构造函数而无需实际知道它?
我当前的解决方法是使用强制转换的开关,但这似乎不合理,因为每当另一个类实现该接口时,我都必须维护该开关。
abstract class IFace {
String foo();
}
class Bar implements IFace {
String foo() => 'I am Bar';
}
T? getObject<T extends IFace>() {
// what I'd like to do, but does not work:
// return T();
// what I have to do instead:
switch (T) {
case Bar:
return Bar() as T;
default:
return null;
}
}
void main() {
Bar? bar = getObject<Bar>();
print(bar?.foo()); // I am Bar
}
【问题讨论】:
-
在 Dart 中不可能。一般来说,你不能在 Dart 中使用
Type。
标签: flutter class dart types interface