gpt4 book ai didi

具有命名构造函数的泛型类型的 Dart 抽象类

转载 作者:行者123 更新时间:2023-12-03 02:51:02 26 4
gpt4 key购买 nike

我试图在 Dart 中构造一个需要命名构造函数的抽象类。给定一些 Map (m),这个泛型类型必须能够实例化自己。

Dart 编译器抛出 T.fromJson -> Invalid constructor name.
我的编码尝试:

abstract class JsonMap<T> {
Map toJson();
T.fromJson(Map m);
}

最佳答案

我在同一个概念上挣扎(在同一个地方...... API 解析 :)) ),但我没有找到合适的解决方案。

但是也许你可以使用我在检查块模式时发现的东西(我没有将它用于我的模型部分):

abstract class SomeBase {
void load();
}

class Provider<T extends SomeBase> extends InheritedWidget {
final T something;

Provider({
Key key,
@required this.something,
}): super(key: key);

@override
bool updateShouldNotify(_) {
return true;
}

static Type _typeOf<T>() => T;

static T of<T extends SomeBase>(BuildContext context){
final type = _typeOf<Provider<T>>();
Provider<T> provider = context.inheritFromWidgetOfExactType(type);
return provider.something;
}
}

或者只是使用它而不将它封装在继承的小部件中并提供已经初始化的对象(如用户或您正在解析的任何内容),这些对象只是从提供的 JSON 加载值。

关于具有命名构造函数的泛型类型的 Dart 抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55850314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com