Dart构造器报错‘constructors can't have a return type’原因咨询
Dart报错“constructors can't have a return type”的原因及解决办法
你的问题核心在于类名和方法名重复。在Dart语法规则里,当一个方法的名字和它所在类的名字完全一致时,这个方法会被自动识别为该类的构造函数,而构造函数的硬性要求就是不能有任何返回类型(包括void)。你给test()方法加了void返回类型,直接违反了这条规则,所以触发了报错。
看你的代码片段:
class test{ int a = 10; //instance variable static int b = 20; //static variables void test(){ // 方法名和类名test重复,被判定为构造函数 print(number); } }
这里有两种解决思路:
- 如果你只是想定义一个普通的实例方法:给方法换个和类名不同的名字即可,比如改成
printNumber:
class test{ int a = 10; static int b = 20; void printNumber(){ print(number); } }
- 如果你确实想定义类的构造函数:直接去掉返回类型
void,就变成了合法的构造函数:
class test{ int a = 10; static int b = 20; test(){ // 去掉void,符合构造函数语法 print(number); } }
内容的提问来源于stack exchange,提问作者Mahdi Jalali Jam
相关产品推荐
相关产品推荐

