native_ field_ not_ static
Detalhes sobre o diagnóstico 'native_field_not_static' produzido pelo analisador do Dart.
Native fields must be static.
Descrição
#
O analisador emite este diagnóstico quando um campo de instância em uma classe
foi anotado com @Native. Campos nativos se referem a variáveis globais em C,
C++ ou outras linguagens nativas, enquanto campos de instância em Dart são
específicos de uma instância daquela classe. Por isso, campos nativos precisam
ser static.
Para mais informações sobre FFI, consulte interoperabilidade com C usando dart:ffi.
Exemplo
#
O código a seguir gera este diagnóstico porque o campo f na classe C é
@Native, mas não é static:
import 'dart:ffi';
class C {
@Native<Int>()
external int f;
}
Correções comuns
#Ou torne o campo static:
import 'dart:ffi';
class C {
@Native<Int>()
external static int f;
}
Ou mova-o para fora da classe, caso em que nenhum modificador static explícito
é necessário:
import 'dart:ffi';
class C {}
@Native<Int>()
external int f;
Se você pretendia anotar um campo de instância que deveria fazer parte de um
struct, omita a anotação @Native:
import 'dart:ffi';
final class C extends Struct {
@Int()
external int f;
}
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ê.