Dart - NoSuchMethodError:类'Module'没有实例getter'String'

时间:2018-04-30 11:56:03

标签: dart flutter

有些人可以解释一下是什么问题吗?

我尝试从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
    } 
}

这是观察者:

watcher

1 个答案:

答案 0 :(得分:0)

您能否提供有关如何定义ItemCreator的更多详细信息?这将帮助我们复制您遇到的行为。如果您仍然遇到相同的错误,也可以运行flutter doctor -v来检查是否有任何错误或警告。