仅在构造函数dart中不为null时更新最终字段

时间:2018-07-26 18:34:52

标签: dart dart-pub

我有一个名为App的类,其中包含一些字段。 仅在传递给构造函数的参数不为null时,我才希望初始化最终字段。

例如在下面的代码中,我仅在不为空时才要设置配置参数。

我尝试了以下代码,但无法正常工作

@immutable
class App {
    final AuthState auth;
    final RConfig config;

    App({AuthState auth, this.config}):
        auth = auth ?? new AuthState(), config = config != null ? config : this.config ;

尽管我对dart很陌生,但我知道我不能两次初始化final字段,但是由于存在一些应用状态,因此必须重新创建AppState且RConfig那时可能为null。

我的问题很简单,这是如何在分配多个最终字段之前检查其有效性,例如null或空。

1 个答案:

答案 0 :(得分:1)

您不能两次初始化一个字段。您可以使用初始化形式(config)和初始化列表项this.config来初始化config = ...

我不确定您要使用config做什么,但是首先将其声明为常规参数,然后找出您想做什么:

AppState({AuthState auth, RConfig config})
    : auth = auth ?? new AuthState(), config = config; // or something