Pular para o conteúdo principal

initializer_for_static_field

Detalhes sobre o diagnóstico 'initializer_for_static_field' produzido pelo analisador do Dart.

'{0}' is a static field in the enclosing class. Fields initialized in a constructor can't be static.

Descrição

#

O analisador produz este diagnóstico quando um campo estático é inicializado em um construtor, usando um parâmetro formal de inicialização ou uma atribuição na lista de inicializadores.

Exemplo

#

O código a seguir produz este diagnóstico porque o campo estático a está sendo inicializado pelo parâmetro formal de inicialização this.a:

dart
class C {
  static int? a;
  C(this.a);
}

Correções comuns

#

Se o campo deve ser um campo de instância, então remova a palavra-chave static:

dart
class C {
  int? a;
  C(this.a);
}

Se você pretendia inicializar um campo de instância e digitou o nome errado, então corrija o nome do campo que está sendo inicializado:

dart
class C {
  static int? a;
  int? b;
  C(this.b);
}

Se você realmente quer inicializar o campo estático, então mova a inicialização para o corpo do construtor:

dart
class C {
  static int? a;
  C(int? c) {
    a = c;
  }
}

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.