跳到主內容

collection_methods_unrelated_type

引數型別 '{0}' 與 '{1}' 不相關。

描述

#

當核心庫中的某些方法使用不合適的引數型別呼叫時,分析器會生成此診斷。這些方法的引數型別不夠具體,無法透過正常的型別檢查捕獲錯誤。

檢查的引數包括:

  • Iterable<E>.contains 方法的引數應與 E 相關
  • List<E>.remove 方法的引數應與 E 相關
  • Map<K, V>.containsKey 方法的引數應與 K 相關
  • Map<K, V>.containsValue 方法的引數應與 V 相關
  • Map<K, V>.remove 方法的引數應與 K 相關
  • Map<K, V>.[] 方法的引數應與 K 相關
  • Queue<E>.remove 方法的引數應與 E 相關
  • Set<E>.lookup 方法的引數應與 E 相關
  • Set<E>.remove 方法的引數應與 E 相關

示例

#

以下程式碼會生成此診斷,因為 contains 方法的引數是 String 型別,它無法賦值給列表 l 的元素型別 int

dart
bool f(List<int> l)  => l.contains('1');

常見修復方法

#

如果元素型別是正確的,則更改引數使其具有相同的型別

dart
bool f(List<int> l)  => l.contains(1);

如果引數型別是正確的,則更改元素型別

dart
bool f(List<String> l)  => l.contains('1');