You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 21:23:20