not_ initialized_ non_ nullable_ instance_ field
Detalhes sobre o diagnóstico 'not_initialized_non_nullable_instance_field' produzido pelo analisador do Dart.
Non-nullable instance field '{0}' must be initialized.
Descrição
#O analisador emite este diagnóstico quando um campo é declarado e possui todas estas características:
- Tem um tipo potencialmente não anulávelPotentially non-nullableUm tipo que é non-nullable explicitamente ou por ser um parâmetro de tipo. Saiba mais
- Não tem inicializador
- Não está marcado como
late
Exemplos
#
O código a seguir produz este diagnóstico porque x é implicitamente
inicializado com null quando não é permitido que seja null:
class C {
int x;
}
De forma semelhante, o código a seguir produz este diagnóstico porque x é
implicitamente inicializado com null, quando não é permitido, por um dos
construtores, mesmo que seja inicializado pelos outros construtores:
class C {
int x;
C(this.x);
C.n();
}
Correções comuns
#Se houver um valor padrão razoável para o campo que seja o mesmo para todas as instâncias, então adicione uma expressão de inicialização:
class C {
int x = 0;
}
Se o valor do campo deve ser informado quando uma instância é criada, então adicione um construtor que defina o valor do campo ou atualize um construtor existente:
class C {
int x;
C(this.x);
}
Você também pode marcar o campo como late, o que remove o diagnóstico, mas
se o campo não receber um valor antes de ser acessado, então uma exceção é
lançada em tempo de execução. Essa abordagem só deve ser usada se você tiver
certeza de que o campo sempre será atribuído antes de ser referenciado.
class C {
late int x;
}
Salvo indicação em contrário, a documentação neste site reflete Dart 3.13.7. Relatar um problema.
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ê.