Pular para o conteúdo principal

final_not_initialized_constructor

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

All final variables must be initialized, but '{0}' and '{1}' aren't.

All final variables must be initialized, but '{0}' isn't.

All final variables must be initialized, but '{0}', '{1}', and {2} others aren't.

Descrição

#

O analisador produz este diagnóstico quando uma classe define um ou mais campos de instância final sem inicializadores e tem pelo menos um construtor que não inicializa esses campos. Todos os campos de instância final devem ser inicializados quando a instância é criada, seja pelo inicializador do campo ou pelo construtor.

Exemplo

#

O código a seguir produz este diagnóstico:

dart
class C {
  final String value;
​
  C();
}

Correções comuns

#

Se o valor deve ser passado diretamente ao construtor, use um parâmetro formal de inicialização para inicializar o campo value:

dart
class C {
  final String value;
​
  C(this.value);
}

Se o valor deve ser calculado indiretamente a partir de um valor fornecido pelo chamador, adicione um parâmetro e inclua um inicializador:

dart
class C {
  final String value;
​
  C(Object o) : value = o.toString();
}

Se o valor do campo não depender de valores que possam ser passados ao construtor, adicione um inicializador para o campo como parte da declaração do campo:

dart
class C {
  final String value = '';
​
  C();
}

Se o valor do campo não depender de valores que possam ser passados ao construtor, mas construtores diferentes precisarem inicializá-lo com valores diferentes, adicione um inicializador para o campo na lista de inicializadores:

dart
class C {
  final String value;
​
  C() : value = '';
​
  C.named() : value = 'c';
}

No entanto, se o valor for o mesmo para todas as instâncias, considere usar um campo estático em vez de um campo de instância:

dart
class C {
  static const String value = '';
​
  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ê.