有些人可以解释一下是什么问题吗?
我尝试从HashMap获取一个项目:
如果我这样做:
var stringProvider = providersHolder[String]
我收到一个错误:
NoSuchMethodError:类'Module'没有实例getter'String'。
如果我接下来这样做:
var stringProvider = providersHolder[providersHolder.keys.last]
其中providersHolder.keys.last == String
我获得了成功。
以下是完整列表:
class Module {
HashMap providersHolder = new HashMap<Type, ItemCreator>();
void addProvider<T, M extends Module>(ItemCreator<T, M> itemCreator) {
providersHolder[T] = itemCreator;
}
}
class Test {
Test() {
var module = Module();
module.addProvider((module) => new Ticker());
module.addProvider((module) => "hello");
var ticketProvider = module.providersHolder[Ticker]; //success
var stringProvider = module.providersHolder[String]; //error
}
}
这是观察者:
答案 0 :(得分:0)
您能否提供有关如何定义ItemCreator的更多详细信息?这将帮助我们复制您遇到的行为。如果您仍然遇到相同的错误,也可以运行flutter doctor -v
来检查是否有任何错误或警告。