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

Dart 2中new和const可选特性无法使用?代码报错求助

问题分析与解决方案

嘿,我来帮你捋清楚这个问题!

首先看你遇到的报错:

NoSuchMethodError: Attempted to use type 'MyClass' as a function. Since types do not define a method 'call', this is not possible. Did you intend to call the MyClass constructor and forget the 'new' operator?

原因其实很明确:你使用的Flutter 0.3.2配套的Dart SDK是2.0.0-dev.48.0.flutter-fe606f890b,这是Dart 2的早期开发版本,当时可选new/const的特性还没有被默认启用。所以你直接写MyClass myObj = MyClass();的时候,Dart会把MyClass当成一个类型来尝试调用(就像调用函数一样),而不是识别为调用构造函数,这就触发了报错。

解决办法

  • 临时快速修复:显式加上new关键字调用构造函数,代码改成这样:

    main() { 
      MyClass myObj = new MyClass(); 
    } 
    class MyClass{ }
    

    这样就能正常运行了。

  • 长期解决方案:升级你的Flutter版本到更高的稳定版本(比如1.x及以后的版本),这些版本配套的Dart SDK已经默认支持可选new/const特性,到时候你就可以直接省略new来创建对象,完全符合你想要的写法。

简单总结一下:Dart 2的可选new特性不是从Dart 2的第一个开发版就默认开启的,你当前用的版本还没到那个阶段,所以必须显式写new才行。

内容的提问来源于stack exchange,提问作者Raouf Rahiche

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:29:06