【问题标题】:Dart : Class Constructor not calledDart:未调用类构造函数
【发布时间】:2021-01-26 15:00:56
【问题描述】:

我有以下代码:

class Article {
    String title;
    String contentString;
    Content content;
    
    Article(String title, String contentString) {
        this.title = title;
        this.content = contentString;
        //I want to call function here
    }

    Article.fromJson(Map<String, dynamic> json)
      : title = json['title'],
        contentString = json['content'];

    void _someFunction() {
       //create function to generate the Content
    }
}

class Content {
  final String text;
  final bool isLink;

  Content({this.text, this.isLink});
}

我想要实现的是在类初始化时调用一个函数。我试图调试并添加断点,但它没有被触发。类初始化的时候可以调用函数吗?

【问题讨论】:

    标签: dart


    【解决方案1】:

    当调用Article 构造函数时,应该调用您放在//I want to... 点的任何代码。如果改为调用 Article.fromJson 构造函数,则不会调用它。我猜测这就是正在发生的事情,因为你还没有说你是如何构造 Articles 的。

    考虑将fromJson 构造函数更改为:

      Article.fromJson(Map<String, dynamic> json)
          : this(json['title'], json['content']);
    

    这是一个重定向生成构造函数,这意味着它转发到Article构造函数,并且所有由它运行的代码也将在使用Article.fromJson时运行。

    【讨论】:

    • 嗨@Irn 感谢您的帮助。它正在工作!
    猜你喜欢
    • 2019-09-28
    • 2017-04-13
    • 1970-01-01
    • 2023-04-03
    • 2018-12-03
    • 2016-07-19
    • 2011-09-08
    • 2018-07-21
    • 1970-01-01
    相关资源
    最近更新 更多