Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart-在Android Studio 3.6.3中进行类型检查时,将参数type int视为num_Dart - Fatal编程技术网

Dart-在Android Studio 3.6.3中进行类型检查时,将参数type int视为num

Dart-在Android Studio 3.6.3中进行类型检查时,将参数type int视为num,dart,Dart,下面的代码生成类型错误: “无法将参数类型int分配给参数类型num” 当定义为int时,sum为什么被视为num 如果我将sum从int更改为var,则错误消失 有人能解释为什么会这样吗 abstract class ISomeInterface { void add<T>(T x); } class SomeClass implements ISomeInterface { int sum; @override void add<int>(int

下面的代码生成类型错误:

“无法将参数类型int分配给参数类型num”

当定义为
int
时,
sum
为什么被视为
num

如果我将
sum
int
更改为
var
,则错误消失

有人能解释为什么会这样吗

abstract class ISomeInterface {
  void add<T>(T x);
}

class SomeClass implements ISomeInterface {
  int sum;

  @override
  void add<int>(int x) {
    sum = sum + x;
  }
}
抽象类接口{
空加(tx);
}
类SomeClass实现了一个接口{
整数和;
@凌驾
无效添加(整数x){
sum=sum+x;
}
}

是否希望子类专用于单个类型?如果将泛型从方法级移到类级,它将编译。@gugge是的,想法是该方法可以处理
int
double
。如果我删除了
add()
上的泛型类型规范,则不会出现类型检查错误。但是,我想知道为什么会发生这种情况(我假设我不理解Dart的一些规则/概念)。嗯,我想这对编译器来说是一个困惑,因为在方法(sum)之外存在类型依赖项。如果你想同时处理int和double,你可以使用
Someclass接口
和类型之和
T
使它成为类级泛型。也许你可以在这里找到一些答案:啊,我想你找到了。我正在收紧子类中param类型的范围,这是不允许的。谢谢@gugge!您希望您的子类专用于单个类型吗?如果将泛型从方法级移到类级,它将编译。@gugge是的,想法是该方法可以处理
int
double
。如果我删除了
add()
上的泛型类型规范,则不会出现类型检查错误。但是,我想知道为什么会发生这种情况(我假设我不理解Dart的一些规则/概念)。嗯,我想这对编译器来说是一个困惑,因为在方法(sum)之外存在类型依赖项。如果你想同时处理int和double,你可以使用
Someclass接口
和类型之和
T
使它成为类级泛型。也许你可以在这里找到一些答案:啊,我想你找到了。我正在收紧子类中param类型的范围,这是不允许的。谢谢@gugge!