Flutter 无法识别在子类型上定义的省道扩展方法

Flutter 无法识别在子类型上定义的省道扩展方法,flutter,dart,Flutter,Dart,我在可比元素列表中定义了以下扩展方法: extension ComparableList<T extends Comparable<T>> on List<T> { int doSomething() { // This is just an example return this.first.compareTo(this.last); } } 如果我将extension方法的定义更改为extension ComparableList

我在可比元素列表中定义了以下扩展方法:

extension ComparableList<T extends Comparable<T>> on List<T> {
  int doSomething() {
    // This is just an example
    return this.first.compareTo(this.last);
  }
}
如果我将extension方法的定义更改为extension ComparableList on List,那么一切都可以正常工作,但是我希望为所有可比较的类定义它。

更改

扩展列表上的可比较列表

扩展列表上的可比较列表


这样Dart就知道类型了。

您导入了扩展名吗?是的,已经导入了。在扩展定义中更改Comparable to num可以使其编译良好,并且我能够使用内部定义的方法。这有帮助吗?扩展列表上的可比列表{是的!这确实奏效了!谢谢你!我将把它作为一个答案发布
class Example<T extends num> {
  final List<T> list;

  Example(this.list) {
    list.doSomething(); // This throws "error: The method 'doSomething' isn't defined for the class 'List'."
  }
}