Pular para o conteúdo principal

unnecessary_getters_setters

Saiba mais sobre a regra de lint unnecessary_getters_setters.

Estável
Recomendado
Correção disponível

Evite encapsular campos em getters e setters só por "segurança".

Detalhes

#

Segundo o Effective Dart:

EVITE encapsular campos em getters e setters só para ficar "seguro".

Em Java e C#, é comum esconder todos os campos atrás de getters e setters (ou propriedades, no C#), mesmo quando a implementação apenas repassa o valor ao campo. Assim, se um dia for preciso fazer mais trabalho nesses membros, isso pode ser feito sem tocar nos pontos de chamada. Isso acontece porque, em Java, chamar um método getter é diferente de acessar um campo, e, em C#, acessar uma propriedade não é binariamente compatível com acessar um campo bruto.

O Dart não tem essa limitação. Campos e getters/setters são completamente indistinguíveis. Você pode expor um campo em uma classe e, depois, encapsulá-lo em um getter e um setter sem precisar tocar em nenhum código que usa esse campo.

RUIM:

dart
class Box {
  var _contents;
  get contents => _contents;
  set contents(value) {
    _contents = value;
  }
}

BOM:

dart
class Box {
  var contents;
}

Ativar

#

Para ativar a regra unnecessary_getters_setters, adicione unnecessary_getters_setters em linter > rules no seu arquivo analysis_options.yaml:

analysis_options.yaml
yaml
linter:
  rules:
    - unnecessary_getters_setters

Se você usa a sintaxe de mapa YAML para configurar as regras de lint, adicione unnecessary_getters_setters: true em linter > rules:

analysis_options.yaml
yaml
linter:
  rules:
    unnecessary_getters_setters: true

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