Dart,在简单的类示例中,只能在初始化程序中访问静态成员

时间:2019-07-13 13:27:48

标签: dart

在下面的这段代码中,

class SimpleClass {
  final String ID;

  BusInformationScreen({this.ID});

  var output = ID;
}

我遇到一个错误 Only static members can be accessed in initializers.

所以我在下面调整了代码。

class SimpleClass {
  static final String ID;

  var output = ID;
}

我想,如果我将ID声明为static,则不必初始化它,但是会出现这样的错误。

The final variable 'ID' must be initialized.

我无法声明变量output的原因是什么?


class SimpleClass {
  final String ID;
  final String output;
  SimpleClass_2 simpleclass_2 = SimpleClass_2(parameter: ID), SimpleClass_2 simpleclass_2 = SimpleClass_2(parameter: ID);

  SimpleClass({this.ID}): output = ID;
}

class SimpleClass_2 {
  final parameter;

  SimpleClass_2({
    this.parameter
  });
}

1 个答案:

答案 0 :(得分:2)

(我假设BusInformationScreenSimpleClass的构造函数)

问题是

var output = ID;

您正在尝试在构造类之前为output设置值。您可以在初始化列表中进行设置:

  SimpleClass({this.ID}):
        output= ID;