Pular para o conteúdo principal

field_initializer_redirecting_constructor

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

The redirecting constructor can't have a field initializer.

Descrição

#

O analisador produz este diagnóstico quando um construtor de redirecionamento inicializa um campo no objeto. Isso não é permitido porque a instância que contém o campo ainda não foi criada no ponto em que ele deveria ser inicializado.

Exemplos

#

O código a seguir produz este diagnóstico porque o construtor C.zero, que redireciona para o construtor C, tem um parâmetro formal de inicialização que inicializa o campo f:

dart
class C {
  int f;
​
  C(this.f);
​
  C.zero(this.f) : this(f);
}

O código a seguir produz este diagnóstico porque o construtor C.zero, que redireciona para o construtor C, tem um inicializador que inicializa o campo f:

dart
class C {
  int f;
​
  C(this.f);
​
  C.zero() : f = 0, this(1);
}

Correções comuns

#

Se a inicialização for feita por um parâmetro formal de inicialização, use um parâmetro normal:

dart
class C {
  int f;
​
  C(this.f);
​
  C.zero(int f) : this(f);
}

Se a inicialização for feita em um inicializador, remova o inicializador:

dart
class C {
  int f;
​
  C(this.f);
​
  C.zero() : this(0);
}

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ê.