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

问题描述 投票:1回答:1

我刚开始飞镖,刚遇到一个我还不明白的问题。我写了这堂课:

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)';
}

使用此类时,例如使用下面的语句,我得到“初始化静态字段时的循环依赖”-error。

Currency currency = Currency.EURO;

任何人都可以向我解释发生了什么事吗?

dart circular-dependency
1个回答
1
投票

我无法重现您的错误,但在您将其他人重定向到的构造函数之前缺少const

const Currency(this.symbol, this.name);
© www.soinside.com 2019 - 2024. All rights reserved.