Dart - 初始化静态字段时的循环依赖

时间:2018-02-28 12:24:59

标签: dart circular-dependency

我是dart的新手,刚刚遇到了一个我还不了解的问题。 我写了这堂课:

class Currency {
    final String symbol;
    final String name;

    // constants for all available Currencies
    static const Currency EURO = const Currency._euro();
    static const Currency POUND = const Currency._pound();
    static const Currency DOLLAR = const Currency._dollar();

    // All available currencies as a list
    static const List<Currency> CURRENCIES = const [
        EURO,
        POUND,
        DOLLAR,
    ];

    // Default constructor
    Currency(this.symbol, this.name);

    // Named constructors
    const Currency._euro() : this('€', 'Euro');

    const Currency._pound() : this('£', 'British Pound');

    const Currency._dollar() : this('\$', 'US Dollar');

    // toString()
    @override
    String toString() => '$symbol ($name)';
}

使用此类时,例如使用下面的语句,我在初始化静态字段&#34; -error时会得到&#34;循环依赖。

Currency currency = Currency.EURO;

有人可以向我解释发生了什么事吗?

1 个答案:

答案 0 :(得分:1)

我无法重现您的错误,但在您将其他人重定向到

的构造函数之前,const丢失了
const Currency(this.symbol, this.name);